Достъпна е нова версия на СУБД 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
