Как стать автором
Поиск
Написать публикацию
Обновить
18.4

Tarantool *

Tarantool — middleware for data

Сначала показывать
Порог рейтинга
Уровень сложности

Работа с памятью в Tarantool: Small — Specialized Memory ALLocators

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


Tarantool — это персистентная NoSQL СУБД в памяти с хранимыми процедурами на Lua. В него встроен SQLite и дисковый движок (Vinyl). Также для Tarantool написано очень много расширений, поэтому многие считают его «сервером приложений». Здесь есть индексы разных типов, а в одном спейсе кроме первичного индекса может быть множество вторичных. Также в Tarantool есть один transaction thread, который выполняет все транзакции в памяти, есть сетевой thread и WAL thread.

Как же устроена работа с памятью в этой СУБД?
Читать дальше →

Тестируем играючи: мастер-мастер репликация в Tarantool

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


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


Каждый игрок будет некоторым узлом, который меняет данные в игровом мире. Эти данные реплицируются между узлами. Таким образом, репликация Tarantool будет являться своего рода транспортом для игрового процесса.

Архитектура S3: 3 года эволюции Mail.ru Cloud Storage

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


Storage Corridor by St-Pete


Всем привет! Я Mons Anderson, архитектор платформы Mail.ru Cloud Solutions, расскажу, как мы построили наше S3-хранилище, как оно работает, какие решения оказались удачными, а какие стоило изменить, если бы мы начали такой же проект с нуля сейчас.


Статья подготовлена на основе доклада на @Databases Meetup by Mail.ru Cloud Solutions & Tarantool. В статье поговорим:


  • как было устроено хранилище Mail.ru, поверх которого мы строили S3-хранилище;
  • что мы добавили, чтобы сделать Mail.ru Cloud Storage;
  • как работает объектная модель хранения и какие сделаны шаги для выхода в продакшен;
  • про доработки боевой системы: фейловер и масштабирование;
  • как мы реализовали шардирование и решардинг;
  • а также про работу с SSL-сертификатами.

Если не хотите читать, можно посмотреть.

Читать дальше →

Кэши Tarantool и репликация из Oracle

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


Меня зовут Александр Деулин, я работаю в отделе развития собственной разработки «Фабрика микросервисов» в компании МегаФон. И хочу рассказать о тернистом пути появления кэшей Tarantool в ландшафте нашей компании, а также о том, как мы внедряли репликацию из Oracle. И сразу поясню, что под кэшем в данном случае подразумевается приложение с базой данных.
Читать дальше →

Создаём с нуля высоконагруженное приложение на Tarantool

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

image


В 2013 я пришел в Mail.ru Group, и я решал задачу, в которой мне нужна была очередь. Есть много разных инструментов для построения очередей, но я решил для начала узнать, что уже имеется в компании. Услышал, что есть такой продукт — Tarantool. Узнал, как он устроен, и мне показалось, что в него отлично может быть встроен брокер очередей.


Я пошёл к главному по Tarantool — Косте Осипову — и постарался объяснить, что я хочу получить. Предполагалось, что код очереди будет написан на C, как и остальной код Tarantool, но… На следующий день Костя дал мне скрипт на 250 строк, который реализовывал почти всё, что я хотел.


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


Прошло много времени, Tarantool развивался, в том числе и под влиянием наших запросов, но основные идеи и подходы сохранились. Я расскажу, как реализовать собственную очередь на современном Tarantool, например версии 2.2.

Читать дальше →

Видео @Databases Meetup: Percona, Postgres Pro, Tarantool и MCS

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


Всем привет! 25 июня прошел второй митап серии @Databases, организованный Mail.ru Cloud Solutions совместно с Tarantool. Переход в онлайн никого не обходит стороной, но даже на удаленке нам удалось собрать вместе более 400 участников, чтобы обсудить актуальные проблемы современных производительных баз данных.

Под катом видео выступлений: Percona о том, как собрать гибридное облако с помощью K8s, которое заменит DBaaS; Postgres Pro сразу с двумя докладами — рассказали все о JSON[b] в Postgres, а также поделились стратегическими планами по развитию базы данных; а Mail.ru Cloud Solutions — как S3-хранилище эволюционировало за свои три года в проде и вместе с ним менялся подход к Tarantool в его архитектуре.
Смотреть видео: Percona, Postgres Pro, Tarantool и MCS

Как написать свой индекс в Tarantool

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


Tarantool — это сервер приложений и база данных. Серверная часть написана на C, а пользователю предоставлен Lua-интерфейс для работы с ним. Кроме того, Tarantool — это opensource-продукт, а значит, исходный код лежит в открытом доступе, и можно свободно разрабатывать и распространять ПО на основе Tarantool.

Но сегодня рассказ будет немного о другом: об эксперименте, о попытке написать свою структуру данных для поиска (Z-order curve) и встроить её в существующую экосистему Tarantool.

Я разработчик в Tarantool Solution Team, не занимаюсь непосредственной разработкой Tarantool, а отношусь к активным пользователям. Поэтому, для меня этот эксперимент — попытка разобраться, как Tarantool работает на низком уровне.
Читать дальше →

Tarantool: взгляд аналитика

Время на прочтение7 мин
Количество просмотров4.9K
Всем привет! Меня зовут Андрей Капустин. Я работаю системным аналитиком в Mail.ru Group. Наши продукты формируют единую экосистему для пользователя, в которой данные генерируют множество независимых инфраструктур: службы заказов такси и еды, почтовые сервисы, соцсети. Сегодня чем быстрее и точнее мы можем спрогнозировать потребность клиента, тем быстрее и вернее мы можем предложить ему наши продукты.

Многие системные аналитики и инженеры сейчас задаются вопросами:

  1. Как спроектировать архитектуру триггерной платформы для real-time маркетинга?
  2. Как организовать структуру данных, соответствующую требованиям маркетинговой стратегии взаимодействия с клиентами?
  3. Как обеспечить стабильную работу подобной системы в условиях очень высоких нагрузок?

В основе таких систем лежат технологии высоконагруженной обработки и анализа больших данных. Мы накопили немалый опыт в этих сферах. И на примере одной реальной истории расскажу о нашем подходе к аналитике и разработке решений в сфере Real-time Marketing с использованием Tarantool.
Читать дальше →

Базы данных в IIoT-платформе: как Mail.ru Cloud Solutions работают с петабайтами данных от множества устройств

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

Привет, я Андрей Сергеев, руководитель группы разработки IoT-решений в Mail.ru Cloud Solutions. Известно, что универсальной базы данных не существует. Особенно когда нужно построить платформу интернета вещей, способную обрабатывать миллионы событий от датчиков в секунду в режиме near real-time.

Наш продукт Mail.ru IoT Platform начинался с прототипа на базе Tarantool. Расскажу, какой путь мы прошли, с какими проблемами столкнулись и как их решали. А также покажу текущую архитектуру современной платформы индустриального интернета вещей. В статье поговорим:

  • о предъявляемых нами требованиях к базе данных, универсальном решении и CAP-теореме;
  • о том, является ли подход database + application server in one серебряной пулей;
  • об эволюции платформы и баз данных, используемых в ней;
  • о том, сколько у нас используется Tarantool’ов и как мы дошли до жизни такой.

Видео @Databases Meetup: безопасность СУБД, Tarantool в IoT, Greenplum для аналитики Big Data

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


28 февраля прошел митап @Databases, организованный Mail.ru Cloud Solutions. Более 300 участников собрались в Mail.ru Group, чтобы обсудить актуальные проблемы современных производительных баз данных.

Под катом видео выступлений: как «Газинформсервис» готовит безопасные СУБД без потери производительности; Arenadata рассказывает, что лежит в основе Greenplum — мощной массивно-параллельной СУБД для аналитических задач; а Mail.ru Cloud Solutions — как и на чем строили свою платформу интернета вещей (спойлер: не обошлось без Tarantool).
Смотреть видео: безопасность СУБД, база данных для IoT, аналитика с Greenplum

T+ Conf 2019: Tarantool в Аэрофлоте, или MDM на лету

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


Сегодня публикуем расшифровку доклада Николая Шевцова и Рустама Кильдиева с T+ Conf 2019 «Tarantool в Аэрофлоте, или MDM (Master Data Management) на лету». Из доклада вы узнаете:

  • Зачем нужен MDM?
  • Зачем нужен риалтайм?
  • Data Science — это не только Jupyter Notebook.
  • Плюсы Tarantool.
  • Чем Lua хорош в проде.
Читать дальше →

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

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

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

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

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

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

Чтобы соответствовать текущим потребностям и заложить фундамент для будущих модернизаций, мы разработали ядро инвест-бизнеса на основе Tarantool.
Читать дальше →

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

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


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


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


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

Читать дальше →

Ближайшие события

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

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


Совсем недавно мы рассказывали о том, как деплоить приложения, написанные на Tarantool Cartridge. Но на деплое эксплуатация не заканчивается, поэтому сегодня мы обновим наше приложение и разберемся с тем, как управлять топологией, шардированием и авторизацией, а также изменять конфигурацию ролей.


Любознательных прошу под кат!

Читать дальше →

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

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


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


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

Читать дальше →

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

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


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

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

Я хочу рассказать об архитектуре TDG и о тех решениях, к которым мы пришли в процессе разработки, познакомить вас с основным функционалом и показать, как наш продукт может стать базой для построения законченных решений.
Читать дальше →

Tarantool Kubernetes Operator

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


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

Представляем вам наше решение для запуска stateful-кластеров Tarantool Cartridge: Tarantool Kubernetes Operator, за подробностями прошу под кат.
Читать дальше →

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

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


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

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

Тarantool Cartridge — это новый фреймворк для разработки сложных распределённых систем. Он позволяет сфокусироваться на написании бизнес-логики вместо решения инфраструктурных проблем. Под катом я расскажу, как этот фреймворк устроен и как с его помощью писать распределённые сервисы.
Читать дальше →

По следам конференции T+ Conf 2019

Время на прочтение3 мин
Количество просмотров1.7K
В середине июня в нашем офисе прошла конференция T+ Conf 2019, на которой прозвучало много интересных докладов про использование Tarantool, in-memory-вычислений, кооперативной многозадачности и Lua для создания высоконагруженных отказоустойчивых сервисов в Digital и Enterprise. И для всех, кто не смог побывать на конференции, мы приготовили видеозаписи и презентации всех выступлений, а также кучу отличных фотографий из гущи событий, так сказать.


Высокоуровневая репликация в СУБД Tarantool

Время на прочтение14 мин
Количество просмотров5.8K
Привет, я занимаюсь созданием приложений для СУБД Tarantool — это разработанная в Mail.ru Group платформа, совмещающая в себе высокопроизводительную СУБД и сервер приложений на языке Lua. Высокая скорость работы решений, основанных на Tarantool, достигается в частности за счет поддержки in-memory режима СУБД и возможности выполнения бизнес-логики приложения в едином адресном пространстве с данными. При этом обеспечивается персистентность данных с использованием ACID-транзакций (на диске ведется WAL-журнал). В Tarantool имеется встроенная поддержка репликации и шардирования. Начиная с версии 2.1, поддерживаются запросы на языке SQL. Tarantool имеет открытый исходный код и распространяется под лицензией Simplified BSD. Также имеется коммерческая Enterprise-версия.


Feel the power! (...aka enjoy the performance)

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