Tarantool — это программное решение с открытым исходным кодом, совмещающее в себе сервер приложений Lua и систему управления базами данных. Исходный код открыт для всех и распространяется бесплатно согласно лицензии BSD license.
Создателем Tarantool’а — а также его основным пользователем — является компания Mail.Ru
КЛЮЧЕВЫЕ ВОЗМОЖНОСТИ:
Пространство ключей
Пространства — это коллекции объектов. Можно думать о пространствах, как об отдельных таблицах. Это удобно, поскольку в одной коллекции, как правило, находятся сущности одного типа. У каждого пространства в Tarantool может быть свой набор индексов.
Целочисленные ключи
Наряду со строковыми ключами в Tarantool есть поддержка целочисленных ключей (32 и 64 бита).
Вторичные индексы
Большинство key-value хранилищ ограничиваются доступом по первичному ключу.
Вторичные индексы могут быть не уникальны
Это означает, что запрос по не уникальному полю может возвращать множество значений.
Композитные индексы
В один вторичный индекс можно включить несколько полей кортежа. Это полный аналог композитных индексов в «традиционных» (SQL) базах данных. Композитные индексы позволяют делать запросы по неполному совпадению (wildcard). Когда известна только первая часть индекса, Tarantool вернет все подходящие значения.
Выборки по диапазонам значений
В отличие от большинства key-value хранилищ, в Tarantool есть возможность извлекать диапазоны значений (только для целочисленных ключей и только при использовании индекса типа TREE)
Хранимые функции на Lua
В Tarantool можно писать хранимые функции на Lua. Lua очень простой язык, который поддерживает JIT-компиляцию.
Фоновые процессы внутри базы данных
На Lua можно сделать не только обработку отдельных запросов, но и реализовать фоновые обработчики (в режиме кооперативной многозадачности).
Простой SQL-клиент
Стоит использовать, прежде всего, для экспериментов и интроспекции при разработке. Поддерживаются простые SQL-запросы, типа SELECT * FROM t0 WHERE k0 = 42.