Как стать автором
Обновить
15
0
Дмитрий Шаронов @dishar43

Пользователь

Отправить сообщение

Угнать за 5 миллисекунд: как мы наладили быструю доставку данных в сложной биржевой системе с помощью Tarantool

Время на прочтение13 мин
Количество просмотров6.3K

Привет! На связи Олег Уткин из отдела архитектуры систем хранения данных Tarantool. Я хочу рассказать, как в ходе проекта для Московской биржи мы консолидировали потоки данных из разных торговых систем и наладили их доставку клиентам. По пути мы собрали много граблей и сделали несколько интересных выводов, которыми я далее поделюсь.

Читать далее
Всего голосов 45: ↑45 и ↓0+45
Комментарии1

Альтернатива MapReduce при поиске в распределенной БД

Время на прочтение6 мин
Количество просмотров4.8K

Привет, меня зовут Сатбек, я работаю в команде Tarantool. Расскажу, как реализовать в шардированном кластере поиск, скорость которого не зависит от количества мастеров и объёма хранимых данных. Условно назову этот способ индексным слоем:

- Опишу общую схему построения поиска.

- Приведу пример реализации.

- Дам рекомендации по разработке.

В статье я последовательно реализую простой CRUD-сервис с шардированным хранилищем, а также поиск по данным. Это поможет вам лучше понять, когда возникают проблемы с поиском по распределённым данным и как их решает индексный слой.

Использовать будем БД Tarantool (версия ≥ 1.10), а также фреймворк для построения кластеров Tarantool-Cartridge (версия 2.7.0).

Для лучшего понимания желательно познакомиться с фреймворком Tarantool-Cartidge, модулем vshard, а также языком Lua, так как пример написан на нём.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии3

Архитектура распределенной очереди в Mail.ru Cloud Solutions

Время на прочтение13 мин
Количество просмотров5.8K


Вряд ли сейчас можно встретить разработчика, который ничего не слышал об очередях сообщений. Самые известные брокеры сообщений это: Apache Kafka, RabbitMQ и IBM MQ. Все также наверняка знают об облачных решениях, предлагаемых Amazon. Есть у них и стандартизованные API для работы с очередями.

Одно из них, Simple Queue Service, мы взяли за основу и разработали распределенную очередь для запуска в облаке Mail.ru. SQS это стандартный API для облаков, его широко используют многие компании, от BMW до NASA.

В статье описано, что такое распределенные очереди и зачем они могут понадобиться, какие в них есть особенности, и о том, какое у нас получилось распределенное решение на базе Tarantool.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии12

Как я сократил код для нагрузочного тестирования в три раза

Время на прочтение12 мин
Количество просмотров13K


Главная концепция нагрузочного тестирования — автоматизировать все, что можно. Берёте инструмент, пишете конфиг и сценарий, запускаете имитацию реальной нагрузки. Чем меньше кода, тем лучше.

Автоматизировать нагрузочное тестирование не так сложно, как может показаться на первый взгляд. Для этого нужен правильный инструмент.

Я расскажу, почему мне не подошел Яндекс.Танк в связке с Pandora и как я в три раза сжал код своей утилиты тестирования без потери производительности.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+27
Комментарии6

Raft в Tarantool. Как это работает и как этим пользоваться

Время на прочтение17 мин
Количество просмотров7.3K

В прошлом году в Tarantool была проведена колоссальная работа по реализации синхронной репликации. При этом мы придерживались алгоритма Raft. Вся работа была разделена на два крупных этапа: так называемую кворумную запись, то есть синхронную репликацию, и автоматические выборы лидера.

Синхронная репликация появилась в релизе 2.5.1, а в конце октября в релизе 2.6.1 появилась поддержка автоматических выборов лидера на основе Raft.

Меня зовут Сергей Петренко, и я участвовал в разработке этих больших фич. Сегодня я расскажу, как они устроены, а также коснусь конфигурирования выборов лидера и новых возможностей, которые алгоритм Raft даёт пользователям Tarantool.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии6

Мониторинг Tarantool: логи, метрики и их обработка

Время на прочтение18 мин
Количество просмотров9.9K

Tarantool — это платформа in-memory вычислений с гибкой схемой данных. На её основе можно создать распределённое хранилище, веб-сервер, высоконагруженное приложение или, в конце концов, сервис, включающий в себя всё вышеперечисленное. Но какой бы ни была ваша промышленная задача, однажды настанет момент, когда её решение придётся мониторить. В этой статье я хочу дать обзор существующих средств для мониторинга приложения на базе Tarantool и пройтись по основным кейсам работы с ними.


Мониторинг Tarantool


Я работаю в команде, которая занимается разработкой, внедрением и поддержкой готовых решений на основе Tarantool. Для вывода наших приложений в эксплуатацию на контуре заказчика было необходимо не только разобраться в текущих возможностях мониторинга, но и доработать их. Большая часть доработок в результате вошла в те или иные стандартные пакеты. Данный материал является текстовой выжимкой этого опыта, и может пригодиться тем, кто решит пройти по той же тропе.

Читать дальше →
Всего голосов 27: ↑25 и ↓2+41
Комментарии0

Руководство по использованию Tarantool Cartridge в Kubernetes

Время на прочтение15 мин
Количество просмотров5.3K


Привет, меня зовут Иван, и сегодня я расскажу как управлять приложением Tarantool Cartridge в кластере Kubernetes при помощи Tarantool Operator. Мы пройдем полный цикл от разработки до эксплуатации:


  • Подготовим инструменты
  • Создадим тестовое приложение
  • Упакуем его в Docker
  • Установим приложение в kubernetes-кластер
  • Масштабируем приложение
  • Обновим версию приложения
  • Разберем возможные проблемы
  • Кастомизируем наш кластер
  • Разберемся с установкой в закрытом контуре
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии1

Как мы внедряли распределенный кеш на Tarantool в одной АБС

Время на прочтение12 мин
Количество просмотров8.4K

Разработка любого достаточно серьезного софта, будь то калькулятор матриц или ИИ беспилотного автомобиля, — это всегда какая-то своя предметная область, определенные технологии, алгоритмы и структуры данных, архитектура кода, процесс разработки и еще много разных умных терминов из мира IT.

В этой статье представлено одно из решений в мире высокой производительности и распределенных систем. Под катом вы найдёте описание всего лишь небольшого ряда задач и проблем, с которыми мы столкнулись, а также некоторые интересные алгоритмы, подходы к построению архитектуры системы, методы оптимизации запросов, ну и немного о процессе разработки и тестирования решения на базе Tarantool — платформы in-memory вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии11

Deploying Tarantool Cartridge applications with zero effort (Part 2)

Время на прочтение11 мин
Количество просмотров1.5K


We have recently talked about how to deploy a Tarantool Cartridge application. However, an application's life doesn't end with deployment, so today we will update our application and figure out how to manage topology, sharding, and authorization, and change the role configuration.

Feeling interested? Please continue reading under the cut.
Read more →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Как мы делали ядро инвестиционного бизнеса «Альфа-Банка» на базе Tarantool

Время на прочтение11 мин
Количество просмотров6.8K

Кадр из фильма «Our Secret Universe: The Hidden Life of the Cell»

Инвестиционный бизнес — это одно из сложнейших направлений в банковском мире, потому что здесь есть не только кредиты, займы и депозиты, но и ценные бумаги, валюта, товары, деривативы и всякие сложности в виде структурных продуктов.

В последнее время мы наблюдаем рост финансовой грамотности населения. Всё больше людей вовлекается в торговлю на рынках ценных бумаг. Индивидуальные инвестиционные счета появились не так давно. Они позволяют вам торговать на рынках ценных бумаг и при этом либо получать налоговые вычеты, либо не платить налоги. И все клиенты, которые к нам приходят, хотят управлять своим портфелем и видеть отчётность в реальном времени. Причем чаще всего этот портфель мультипродуктовый, то есть люди являются клиентами различных направлений бизнеса.

Кроме того, растут и потребности регуляторов, как российских, так и зарубежных.

Чтобы соответствовать текущим потребностям и заложить фундамент для будущих модернизаций, мы разработали ядро инвест-бизнеса на основе Tarantool.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+43
Комментарии13

Tarantool: история ускорения поиска в 1С

Время на прочтение7 мин
Количество просмотров14K


Недавно у наших добрых друзей из крупной розничной сети возникла задача ускорения поиска в 1С.


Во-первых, искать нужно было по клиентам (три справочника, 9 текстовых полей, поиск типа %like%) и всего-то по 2,5 млн записей. Сразу скажем, что полнотекстовый поиск и морфология — это пока не про Tarantool. В результате ряда экспериментов мы остановились на ElasticSearch, но т.к. он не в тему статьи, то можем написать отдельную, если будет интерес. Скажем только, что скорость выросла на порядок по сравнению с тем, что мы могли выжать из полнотекстового поиска MS SQL.


Во-вторых, нужен был поиск и подбор по товарам с выводом остатков по всем складам без дополнительных запросов. Скорость поиска должна была быть сопоставима с обычным откликом интерфейса, то есть около 0,2 сек вместо текущих 5-12 секунд в 1С (в зависимости от уровня нагрузки). 90 тысяч строк, список номенклатур меняется не часто, примерно по 10-50 позиций в день.

Читать дальше →
Всего голосов 32: ↑30 и ↓2+45
Комментарии64

Легко и непринужденно деплоим приложения на Tarantool Cartridge (часть 1)

Время на прочтение8 мин
Количество просмотров6K


Мы уже рассказывали про Tarantool Cartridge, который позволяет разрабатывать распределенные приложения и паковать их. Осталось всего ничего: научиться деплоить эти приложения и управлять ими. Не беспокойтесь, мы всё предусмотрели! Мы собрали вместе все best practices по работе с Tarantool Cartridge и написали ansible-роль, которая разложит пакет на серверы, стартанет инстансы, объединит их в кластер, настроит авторизацию, забутстрапит vshard, включит автоматический failover и пропатчит кластерный конфиг.


Интересно? Тогда прошу под кат, всё расскажем и покажем.

Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии4

Архитектура и возможности Tarantool Data Grid

Время на прочтение7 мин
Количество просмотров7.9K


В 2017 году мы выиграли конкурс на разработку транзакционного ядра инвестиционного бизнеса Альфа-Банка и приступили к работе (на HighLoad++ 2018 с докладом о ядре инвестиционного бизнеса выступал Владимир Дрынкин, руководитель направления транзакционного ядра инвестиционного бизнеса Альфа-банка). Эта система должна была агрегировать данные о сделках из разных источников в различных форматах, приводить данные к унифицированному виду, сохранять их и предоставлять к ним доступ.

В процессе разработки система эволюционировала и обрастала функционалом, и в какой-то момент мы поняли, что у нас кристаллизуется что-то намного большее, чем просто прикладное ПО, созданное для решения строго определенного круга задач: у нас получилась система для построения распределенных приложений с персистентным хранилищем. Полученный нами опыт лег в основу нового продукта — Tarantool Data Grid (TDG).

Я хочу рассказать об архитектуре TDG и о тех решениях, к которым мы пришли в процессе разработки, познакомить вас с основным функционалом и показать, как наш продукт может стать базой для построения законченных решений.
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии8

Tarantool Kubernetes Operator

Время на прочтение9 мин
Количество просмотров8.1K


Kubernetes становится де-факто стандартом для запуска stateless-приложений. В основном потому, что позволяет значительно сократить time-to-market для доставки новых фич. Запуск stateful-приложений — баз данных, stateful-микросервисов — все еще представляет собой сложную задачу, но необходимость выдерживать конкуренцию и поддерживать высокий темп доставки подталкивает компании к экспериментам в этой области и создает спрос на подобные решения.

Представляем вам наше решение для запуска stateful-кластеров Tarantool Cartridge: Tarantool Kubernetes Operator, за подробностями прошу под кат.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии4

Тarantool Cartridge: шардирование Lua-бекенда в три строчки

Время на прочтение9 мин
Количество просмотров12K


У нас в Mail.ru Group есть Tarantool — это такой сервер приложений на Lua, который по совместительству ещё и база данных (или наоборот?). Он быстрый и классный, но возможности одного сервера всё равно не безграничны. Вертикальное масштабирование тоже не панацея, поэтому в Tarantool есть инструменты для горизонтального масштабирования — модуль vshard [1]. Он позволяет шардировать данные по нескольким серверам, но придётся повозиться, чтобы его настроить и прикрутить бизнес-логику.

Хорошие новости: мы собрали шишек (например [2], [3]) и запилили очередной фреймворк, который заметно упростит решение этой проблемы.

Тarantool Cartridge — это новый фреймворк для разработки сложных распределённых систем. Он позволяет сфокусироваться на написании бизнес-логики вместо решения инфраструктурных проблем. Под катом я расскажу, как этот фреймворк устроен и как с его помощью писать распределённые сервисы.
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии6

Хранение данных на Виниле

Время на прочтение22 мин
Количество просмотров26K


В 2016-м я выступил на Highload с докладом про Vinyl, движок для хранения данных на диске в Tarantool. С тех пор мы добавили много новых возможностей, но хранение данных на диске — такая объемная тема, что основы, о которых идет речь в этой статье, совсем не изменились.

Содержание (чтобы удобно было ориентироваться):

Читать дальше →
Всего голосов 61: ↑60 и ↓1+59
Комментарии25

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность