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, стабильная версия.