Tarantool

Решения in-memory быстрее, а в Tarantool обеспечена гарантия целостности данных

Tarantool Tarantool — решение класса middleware для ускорения IT-систем и обработки данных. Сочетает в себе сервер приложений, гибридное хранилище (базу данных) с гибкой схемой данных и мощные средства масштабирования. Разработка VK Tech, российского вендора корпоративного ПО.
Платформа способна обрабатывать до 1 млн запросов в секунду благодаря размещению данных в оперативной памяти. Применяется в банковском секторе, ритейле, телекоме и других отраслях для эффективного создания высоконагруженных приложений.


Возможности

Быстрое in‑memory хранилище

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

Мульти‑модельный подход

Помимо традиционного ключ–значение, Tarantool поддерживает таблицы SQL‑подобного синтаксиса и индексы B‑tree, hash‑и GiST. Это позволяет разрабатывать как OLTP‑приложения, так и гибридные решения с одновременно необходимыми структурами данных.

Поддержка Lua‑скриптов

Lua встроен в ядро и может использоваться как серверный скрипт, обработчик триггеров и бизнес‑логика. Lua‑функции выполняются в одном потоке, что упрощает отладку и повышает производительность.

Кластеризация и репликация

Tarantool предлагает синхронную/асинхронную репликацию и автоматическое распределение данных по узлам (sharding). Клиент получает прозрачный доступ к кластеру, а система обеспечивает отказоустойчивость и масштабируемость.

Модульная архитектура

Через модульную систему можно подключать расширения, написанные на C/C++ или Lua. Официальный репозиторий содержит модули для работы с HTTP, Redis‑совместимостью, MQTT и многими другими протоколами. Это позволяет быстро адаптировать Tarantool под специфические задачи.

Архитектура

Ядро на C/C++

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

Модульная система

Каждый компонент (сервера, клиент, модули) реализован как отдельный плагин. Модуль engine отвечает за хранение, router – за маршрутизацию запросов, а lua‑модуль предоставляет API для скриптов. Это упрощает обновление и замену компонентов.

Параллельная обработка

Использует многопоточность с разделением нагрузки: ядро читает запросы, потоки обрабатывают Lua и I/O. Это позволяет использовать многоядерные процессоры, сохраняя однопоточную модель Lua.

Конфигурация (tarantool.cfg)

Параметры, пути к snapshot‑файлам и настройки репликации, задаются в простом текстовом файле. Конфигурация поддерживает динамическое изменение без перезапуска сервера, что критично для высокодоступных систем.

Масштабируемость и балансировка

Встроенный API topology позволяет программно управлять узлами кластера: добавлять/удалять реплики, менять распределение данных. Это обеспечивает горизонтальное масштабирование без вмешательства администратора в структуру таблиц, а также позволяет интегрировать Tarantool с внешними балансировщиками нагрузки.