Нова версия на СУБД Tarantool 2.8 е налична, осигуряваща постоянно съхранение на данни с извличане на информация от оперативната памет (in-memory database). СУБД съчетава висока скорост на обработка на заявки, типична за NoSQL системи (например Memcached и Redis), с надеждността на класическите СУБД (Oracle, MySQL и PostgreSQL). Tarantool е написан на C и позволява създаването на съхранявани процедури на Lua. Кодът се разпространява под лиценз BSD.
СУБД позволява ефективна работа с големи обеми данни под високи натоварвания. Сред особеностите на Tarantool е възможността за създаване на обработващи функции на Lua (вграден LuaJIT), използването на формата MessagePack за обмен на данни с клиента, наличието на два вградени механизма (съхранение в ОЗУ с изхвърляне на постоянен носител и двустепенно дисково хранилище на базата на LSM-дерево), поддръжка на вторични ключове, четири типа индекси (HASH, TREE, RTREE, BITSET), средства за синхронна и асинхронна репликация в режим master-master, поддръжка на удостоверяване на връзките и контрол на достъпа, възможност за обработка на SQL заявки.
Основни промени:
- Стабилизация на MVCC (Многоверсионно управление на конкурентен достъп) в in-memory механизма memtx.
- Поддръжка на транзакционност в бинарния протокол IPROTO. По-рано за транзакция беше необходимо да се напише съхранявана процедура на Lua.
- Поддръжка на синхронна репликация, която работи свързана с отделни таблици.
- Механизъм за автоматично превключване на резервен възел (failover) на базата на протокола RAFT. В Tarantool отдавна е реализирана асинхронна WAL-базирана репликация, сега не е необходимо ръчно да се следи главният възел.
- Автоматичното превключване на главния възел е налично също и в случай на топология с сегментиране (шардинг) на данни (използва се библиотека vshard, която разпределя данните по сървърите с помощта на виртуални кошници (bucket)).
- Подобряване на фреймуърка за изграждане на клъстерни приложения Tarantool Cartridge при работа във виртуални среди. Tarantool Cartridge сега по-добре понася натоварване.
- Работата на Ansible роля за разгръщане на клъстери е ускори до 15-20 пъти. По този начин работата с големи клъстери стана по-лесна.
- Появи се инструмент за опростена миграция от стари версии >1.6 и <1.10, който е наличен чрез допълнителна опция при стартиране. По-рано миграцията трябваше да се извършва чрез инсталиране на междинна версия 1.10.
- Извършена е оптимизация на съхранението на кортежи с малки размери.
- В SQL е реализирана поддръжка на UUID и подобрено е преобразуването на типове.
Важно да се отбележи, че с версия 2.10 ще бъде приложена нова политика за формиране на релизите. При значителни издания с нарушена обратна съвместимост първата цифра от версията ще се променя, при междинни - втората, а при корекционни - третата (след 2.10 ще бъде издаден релиз 3.0.0).
Източник: opennet.ru
