Tarantool — это система управления базами данных NoSQL, работающая на сервере приложений Lua. Код доступен бесплатно на условиях лицензии BSD. Поддерживаемые платформы: GNU/Linux, Mac OS и FreeBSD.
Ключевая особенность
В отличие от большинства баз данных NoSQL, Tarantool поддерживает первичные, вторичные ключи, составные ключи, типы индексов HASH, TREE и BITSET.
Tarantool поддерживает хранимые процедуры Lua, которые могут обращаться к данным и изменять их атомарно. Процедуры можно создавать, изменять и удалять во время выполнения.
Использование Lua в качестве языка расширения не ограничивается хранимыми процедурами: программы Lua можно использовать во время запуска, для определения триггеров и фоновых задач, взаимодействия с сетевыми одноранговыми узлами. В отличие от популярных сред разработки приложений, реализованных на основе шаблона «реактор», сетевое взаимодействие в Lua на стороне сервера является последовательным, но очень эффективным, поскольку оно построено поверх взаимодействующей многозадачной среды, используемой самим сервером.
Tarantool, расширенный с помощью Lua, обычно заменяет не один, а несколько существующих компонентов единой высокопроизводительной системой, изменяя и упрощая сложные многоуровневые архитектуры веб-приложений.
Tarantool поддерживает репликацию. Реплики могут работать локально или на удаленном хосте. Репликация Tarantool асинхронная и не блокирует запись на мастер. Когда или если мастер становится недоступным, реплика может быть переключена на роль мастера без перезапуска сервера.