Tarantool — однопоточный TCP сервер, реализующий кооперативную многозадачность. Разрабатывается с учетом работы под высокими нагрузками (десятки тысяч RPS). Можно выделить две логические составляющие: ядро и модули. В настоящее время подключение модулей производится на этапе компиляции. На уровне ядра реализуется базовый функционал (общение по сети, работа с бинарными логами, репликация по сети, быстрое переключение на резервный сервер и т.п.). В модулях реализуется бизнес логика конкретного приложения с использованием API ядра.
Tarantool/Box — хранилище данных в памяти, ключ-значение.
Сервер разрабатывался для внутренних целей в компании Mail.Ru. В процессе эксплуатации система хорошо зарекомендовала себя и была внедрена во многих проектах компании. Благодаря высокой производительности и надежности системы в условиях больших нагрузок, удалось повысить стабильность предоставляемых сервисов. Первая версия сервера, ставшего основой для целого семейства хранилищ, появилась в 2008 году. Tarantool – переработанный и усовершенствованный сервер, предназначенный для построения специализированных хранилищ. Код написан на языке С и использует расширения gcc.
Характеристики
- отсутствие фрагментации основной памяти и деградации производительности при работе с множеством маленьких объектов, благодаря иcпользованию собственных аллокаторов;
- возможность работы с большими объемами данных;
- наличие файла snapshot, в котором сохраняется состояние всех данных базы на момент записи на диск;
- способность сохранять все изменения состояния базы данных (логирование транзакций в файлах бинарных логов) и автоматически восстанавливать информацию после перезапуска системы;
- высокая доступность системы (в случае программных или аппаратных сбоев происходит автоматическое переключение на доступную реплику);
- совместимость с протоколом memcached;
- возможность обновлять систему незаметно от клиентских сервисов с помощью применения локальных реплик;
- репликация данных по сети;
- простой бинарный протокол для реализации дополнительной логики;
- Собирается только под gcc;
- Тестировался только под Linux.
IRC chatroom
#tarantool on irc.freenode.netНовости
2011-12-14: Tarantool 1.4.4, стабильная версия ветки 1.4.
2011-08-25: Tarantool 1.4.2, с поддержкой Lua.
2011-06-05: Опубликован tarantool user guide.
2011-05-14: tarantool-1.3.5, стабильная версия.