-
Notifications
You must be signed in to change notification settings - Fork 46
What's new for release 3.6 #5538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,116 @@ | ||
| Tarantool 3.6 | ||
| ============= | ||
|
|
||
| Release date: 2025-12-12 | ||
|
|
||
| Releases on GitHub: :tarantool-release:`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. | ||
|
|
||
| .. _3-6-faster-snapshot-recovery-ce: | ||
|
|
||
| [CE] Memtx: significantly faster snapshot recovery | ||
| -------------------------------------------------- | ||
|
|
||
| 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. | ||
|
|
||
| .. _3-6-grant-metagrant-privileges-ce: | ||
|
|
||
| [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. | ||
|
|
||
| .. _3-6-sync-replication-2-dc-ee: | ||
|
|
||
| [EE] Failover coordinator: synchronous replication for 2 DC topology | ||
| -------------------------------------------------------------------- | ||
|
|
||
| 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" | ||
|
|
||
| a. DC #1 goes down, while DC #2 is up. The failover coordinator decreases the quorum size | ||
| to 1. The cluster keeps serving the clients. | ||
| b. DC #1 goes up and starts obtaining missed data from DC #2. The quorum size is still 1. | ||
| c. 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" | ||
|
|
||
| a. DC #1 (2 instances) goes down, while DC #2 (2 instances) is up. | ||
| b. 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. | ||
|
|
||
| .. _3-6-memcs-improvements: | ||
|
|
||
| [EE] MemCS: multiple improvements | ||
| --------------------------------- | ||
|
|
||
| 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. | ||
|
|
||
sergepetrenko marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| 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. | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.