Release of Tarantool 2.8 DBMS

A new version of the Tarantool 2.8 DBMS is available, which provides persistent data storage with the return of information from RAM (in-memory database). The DBMS combines the high query processing speed of NoSQL systems (such as Memcached and Redis) with the reliability of traditional DBMSs (Oracle, MySQL, and PostgreSQL). Tarantool is written in C and allows you to create stored procedures in Lua. The code is distributed under the BSD license.

The DBMS allows you to work effectively with large amounts of data under high loads. Tarantool features include the ability to create handlers in the Lua language (LuaJIT is built-in), the use of the MessagePack format when exchanging data with the client, the presence of two built-in engines (storage in RAM with a reset to a permanent drive and two-level disk storage based on LSM-tree), support for secondary keys, four types of indexes (HASH, TREE, RTREE, BITSET), tools for synchronous and asynchronous replication in master-master mode, support for connection authentication and access control, the ability to process SQL queries.

Main changes:

  • Stabilization of MVCC (Multi-Version Contention Control) in the in-memory memtx engine.
  • Transactional support in the IPROTO binary protocol. Previously, for a transaction, it was necessary to write a stored procedure in the Lua language.
  • Support for synchronous replication, which works in relation to separate tables.
  • The mechanism of automatic switching to a spare node (failover) based on the RAFT protocol. Tarantool implemented asynchronous WAL-based replication a long time ago, now you don't have to monitor the master node manually.
  • Automatic switching of the master node is also available in the case of a topology with data sharding (using the vshard library, which distributes data across servers using virtual buckets).
  • Improvement of the framework for building cluster applications Tarantool Cartridge when working in virtual environments. Tarantool Cartridge now holds load better.
  • Accelerated operation of the Ansible role for cluster deployment up to 15-20 times. Thus, working with large clusters has become easier.
  • There is a tool for simplified migration from older versions >1.6 and < 1.10, which is available with an additional option at startup. Previously, the migration had to be done by deploying the intermediate version 1.10.
  • Small tuple storage has been optimized.
  • SQL introduces UUID support and improved type conversion.

It is worth noting that starting from version 2.10, a transition to a new release policy will be implemented. Major releases that break backwards compatibility will change the first digit of the version, intermediate releases will change the second digit, and corrective releases will change the third digit (after 2.10, release 3.0.0 will be released).

Source: opennet.ru

Add a comment