Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Концепции

Движки хранения

Движок хранения — это набор низкоуровневых процедур, обеспечивающих сохранение и извлечение значений. В Tarantool доступно два движка хранения:

  • memtx — движок хранения в оперативной памяти, используется по умолчанию.
  • vinyl — дисковый движок хранения. Подробнее см. в разделе Движки базы данных.

Модель данных

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

В платформе поддерживается описание схемы данных, но оно не является обязательным.

Tarantool поддерживает гибко настраиваемые индексы различных типов.

Для обеспечения сохранности данных и быстрого восстановления при сбоях в Tarantool используются такие механизмы, как журнал предзаписи (WAL) и снимки.

Подробнее см. на странице Модель данных.

Файберы и кооперативная многозадачность

Tarantool выполняет код в файберах, управление которыми осуществляется посредством кооперативной многозадачности. Подробнее о модели потоков Tarantool.

Подробнее см. на странице Файберы, yield и кооперативная многозадачность.

Транзакции

В соответствующей ACID модели транзакций Tarantool можно выбрать один из двух режимов транзакций.

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

Режим MVCC основан на механизме управления конкурентным доступом (MVCC), в котором можно выполнять yield внутри более длительной транзакции. Этот режим работает только с движком хранения в оперативной памяти memtx, используемым по умолчанию.

Подробнее см. на странице Транзакции.

Репликация

Репликация обеспечивает хранение данных в копиях одной и той же базы данных для повышения надежности.

Несколько экземпляров Tarantool могут быть объединены в набор реплик. Они обмениваются данными через бинарный протокол iproto. Подробнее об архитектуре репликации Tarantool.

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

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

Подробнее см. в разделе Репликация.

Шардирование

Шардирование базы данных в Tarantool реализовано через модуль vshard. Подробнее см. на странице Шардирование.

Триггеры

В Tarantool можно задавать функции обратного вызова, которые выполняются при определенных событиях базы данных. Они могут быть полезны для разрешения конфликтов репликации. Подробнее см. на странице Триггеры.

Сервер приложений

Используя Tarantool в качестве сервера приложений, можно писать приложения на Lua, C или C++. Также можно создавать переиспользуемые модули.

Для повышения скорости выполнения кода в Tarantool встроен Lua-компилятор Just-In-Time (LuaJIT). LuaJIT компилирует горячие участки кода — участки, которые выполняются многократно — тем самым ускоряя работу приложения. Для работы с LuaJIT в Tarantool предусмотрены такие инструменты, как профайлер памяти и модуль getmetrics.

О том, как использовать Tarantool в качестве сервера приложений, см. в руководствах.