Редкие базы данных: Tarantool

Проще и сложнее, чем Redis.
12 октября 2016225057Андрей Никифоров4983712

Здравствуйте!

Tarantool — СУБД, разработанная компанией Mail.ru.

Tarantool на первый взгляд похожа на Redis: данные в памяти, выглядит просто, работает быстро. Но на самом деле отличия значительные. Разберемся с этим.

Хранение

Tarantool хранит данные в виде кортежей:

{a, b, c, d, ...}

Первое поле — первичный ключ, остальные поля с данными. Данные могут быть всего трех типов: строка и целые числа 32 и 64 бит: никаких списков, хешей и сортированных множеств.

Кроме того, можно разделять множества ключей в пространства, это чем-то похоже на таблицы в классических SQL БД.

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

Индексы есть, и они работают. Индекс по первичному ключу, по вторичным, составные ключи и диапазоны значений — все есть.

Фишки

Основная фишка — возможность писать процедуры на языке Lua. Более того, можно писать полноценные программы, которые будут выполняться в фоне на сервере БД.

Вторая фишка — поддержка протокола Memcache: можно заменить memcahed на Tarantool и никто ничего не заметит.

Наконец, есть всякие приятные вещи вроде нотификаций (publish/subscribe), шардирования и просто быстрой работы.

Где используется

В первую очередь Tarantool использует компания-разработчик во многих своих сервисах. Посмотрите доклад с «Форума технологий – 2013», посвященный Tarantool: «Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?».

Tarantool — интересный проект с открытым кодом и хорошими возможностями, но как любой noSQL-проект, он требует особого подхода.

Посмотреть код: github.com/tarantool/tarantool

Узнать больше: tarantool.org

базы данныхtarantoolnosqlweb_developer
Нашли ошибку в тексте? Напишите нам.