Tarantool 3.6 | Tarantool
Releases Tarantool 3.6

Tarantool 3.6

Release date: 2025-12-12

Releases on GitHub: v. 3.6.0

The 3.6 release of Tarantool adds the following main product features and improvements for the Community and Enterprise editions:

  • Community Edition (CE)
    • Memtx: significantly faster snapshot recovery.
    • New privileges: grant and metagrant.
  • Enterprise Edition (EE)
    • Failover coordinator: synchronous replication for 2 DC topology.
    • MemCS: multiple improvements.

This release speeds up memtx snapshot recovery by up to 70% by offloading MsgPack decoding to a separate thread. Space and transactional triggers (space.on_replace, space.before_replace) are now deprecated during recovery.

[CE] New privileges: grant and metagrant

This release introduces new privileges, grant and metagrant. They allow Tarantool users to create new users with a complete range of privileges, like the builtin admin user does.

The grant privilege allows granting any privilege, except grant and metagrant, on an object, object class or universe. The metagrant privilege allows granting grant and metagrant privileges.

Both grant and metagrant are only grantable on the universe and allow granting privileges only to other users, not to the current user.

In previous releases, the failover coordinator supported synchronous replication for topologies with data storages located in 3 and more data centers. With N instances within a replica set, the minimal quorum size could be N/2 + 1. Topologies with 2 data centers were not supported because the quorum size could not be dynamically decreased if connection to the second data center was lost. For example, in a minimal replica set of 2 instances the default quorum size is 2 (calculated as 2/2 + 1 = 2). If one of the instances fails, no new transactions can be committed, because it is impossible to get an ack from the second instance. So, new transactions are lost.

Now, for supervised failover, Tarantool supports synchronous replication for topologies with data storages located in 2 data centers. The failover coordinator automatically decreases the quorum size if connection to the second data center is lost, and restores the cluster’s operability within the available data center. When connection to the second data center is up again, the failover coordinator automatically restores the normal quorum size. So, no transactions are lost.

However, there are some limitations. An important thing is that while data storages can be deployed in just 2 DCs, we need yet another DC (a so-called “quorum DC”) for an extra configuration storage (based on etcd or Tarantool). So, the effective topology (also known as “2,5 DC topology”) implies 3 DCs all in all: two DCs with a complete set of components (data storages, routers, configuration storages) + one DC with configuration storage.

Here are the cases when a topology with data storages deployed in 2 DCs may fail.

Case #1: “interrupted data enrichment after DC failure”

  1. DC #1 goes down, while DC #2 is up. The failover coordinator decreases the quorum size to 1. The cluster keeps serving the clients.
  2. DC #1 goes up and starts obtaining missed data from DC #2. The quorum size is still 1.
  3. The data enrichment process for DC #1 is still in progress, but DC #2 goes down now. In this case, the cluster becomes unavailable.

Case #2: “no multiple quorum decrease”

  1. DC #1 (2 instances) goes down, while DC #2 (2 instances) is up.
  2. One of the 2 instances in DC #2 goes down. In this case, the cluster becomes unavailable as well.

Case #3: Both DCs go down – the ultimate case when the cluster becomes unavailable.

In other cases, the cluster will keep working.

This release brings multiple minor enhancements to the MemCS engine, most of them focusing on indexes and performance.

MemCS now supports:

  • Aggregates over decimal fields,
  • Inserting into the middle of MemCS primary index with aggregates,
  • Specifying per-column layout in space format and secondary index definitions,
  • index:quantile(),
  • Bloom aggregates,
  • Statistics of index aggregates and scanner,
  • Index aggregates exported to their Lua objects,
  • Some C API improvements related to inserting and scanning data in the Apache Arrow format.

Furthermore, the performance of MemCS skip index writes is increased. Now this index doesn’t reallocate blocks if they are not used by any read view.

Found what you were looking for?
Feedback