Випуск СУБД Tarantool 2.8

Доступна нова версія СУБД Tarantool 2.8, що забезпечує постійне зберігання даних із віддачею інформації з оперативної пам'яті (in-memory database). СУБД поєднує високу швидкість обробки запитів, характерну для NoSQL-систем (наприклад, Memcached та Redis), з надійністю традиційних СУБД (Oracle, MySQL та PostgreSQL). Tarantool написаний мовою C і дозволяє створювати процедури, що зберігаються на мові Lua. Код розповсюджується під ліцензією BSD.

СУБД дозволяє ефективно працювати з більшими обсягами даних під високими навантаженнями. З особливостей Tarantool відзначається можливість створювати обробники мовою Lua (вбудований LuaJIT), застосування формату MessagePack при обміні даними з клієнтом, наявність двох вбудованих двигунів (зберігання в ОЗУ зі скиданням на постійний накопичувач та дворівневе дискове сховище на базі LSM-tree), підтримка ключів, чотири типи індексів (HASH, TREE, RTREE, BITSET), засоби для синхронної та асинхронної реплікації в режимі master-master, підтримка автентифікації підключень та контролю доступу, можливість обробки SQL-запитів.

Головні зміни:

  • Стабілізація MVCC (Багатоверсійне управління конкурентним доступом) в in-memory движку memtx.
  • Підтримка трансакційності у бінарному протоколі IPROTO. Раніше для транзакції необхідно було написати процедуру, що зберігається, мовою Lua.
  • Підтримка синхронної реплікації, яка працює у прив'язці до окремих таблиць.
  • Механізм автоматичного перемикання на запасний вузол (failover) з урахуванням протоколу RAFT. У Tarantool давно було реалізовано асинхронну WAL-based реплікацію, тепер можна не стежити за майстер-вузлом вручну.
  • Автоматичне перемикання майстер-вузла також доступне у разі топології із сегментуванням (шардингом) даних (використовується бібліотека 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

Додати коментар або відгук