02 октября 2015 г., Москва Конференция «Автоматика 2.0» Tarantool: NoSQL СУБД для “быстрых” данных Konstantin Osipov, kostja@tarantool.org http://try.tarantool.org Tarantool как СУБД (1) … или о том, как всё начиналось... ● уникальное сочетание возможностей среди СУБД с открытым исходным кодом: ➢ 100% данных в оперативной памяти ➢ поддержка транзакций ➢ master-master репликация = низкое время отклика + отказоустойчивость Tarantool как СУБД (2) ● современная архитектура ➢ ➢ ➢ гибкая модель данных на основе формата MsgPack структуры данных оптимизированы для L1/L2 кэшей отсутствие внутренних блокировок Tarantool как СУБД (3) ● Открытый исходный код и расширяемость ➢ ➢ ➢ ➢ Открытое API индексации Несколько подсистем хранения Триггеры на события БД: новые соединения, изменения данных Поддержка внешней авторизации Tarantool как сервер приложений ● Свобода выбора архитектуры приложения: ➢ ➢ ➢ ➢ Выполнение кода на стороне сервера Зелёные потоки Мгновенные запросы к БД из хранимых процедур Скрипты для старта сервера Tarantool как сервер приложений (2) ● Простота и компактность реализации: ➢ ➢ ➢ ➢ ➢ libcoro, libeio, libevent, LuaJIT 2.0 FFI ядро - 170k SLOC множество расширений в виде модулей Lua 9 MB бинарный файл с debug info (2.2 MB stripped) минимальные требования к памяти - 64 MB Поддерживаемые платформы ● ОС: Linux, FreeBSD, Mac ● Hardware: i32/i64, Intel Atom, ARM (начиная с 1.7) Tarantool как сервер приложений (3) ● Инструментарий, а не книга рецептов ➢ ➢ ➢ require('fiber'), require('ipc'), require('socket'), json, yaml, msgpack, digest (md5, sha, etc) on board net.tarantool, net.mysql, net.postgresql Внешние модули: http, queued, memcached, expirationd, ... Lua all the way down Роль Tarantool в Internet of Things ● координация взаимодейстующих устройств ● нормализация и хранение данных ● обработка событий и сообщений Сообщество (1) ● free as in freedom лицензия BSD ➢ 100% открытость: нет платных расшширений ➢ http://github.com/tarantool … разработка спонсируется Mail.Ru Group, Avito ➢ Сообщество (2) ● Множество внедрений в Mail.Ru Group: ➢ замена memcache, redis, beanstalkd = smart stateful first tier of the cloud ● Badoo: хранение истории посещений ● Sberbank Digital Ventures: определение фрода ● Avito: поведенческий таргетинг ● Wallarm: анализ взломов ● NowTaxi: платформа резервирования и маршрутизации такси Сообщество (3) ● #tarantool at irc.freenode.net ● tarantool@googlegroups.com ● Онлайн-демо на http://try.tarantool.org Вопросы?