Skip to content

Prepare What's new for Tarantool 3.3 #4653

Closed
@p7nov

Description

@p7nov

Product: Tarantool
Since: 3.3.0
Root document: https://www.tarantool.io/en/doc/latest/release/
SME: @ KAPANDR, @ sergepetrenko

Details

Features to cover in What's new

From @ sergepetrenko

  • offset_of for indexes and spaces, offset counting for O(log(size)); same for read views in EE (Optimize select with offset option tarantool#8204, https://github.com/tarantool/tarantool-ee/issues/858).
    Related changelogs:
    • Improved performance of tree index methods: select() with the offset
      specified and count() method. The underlying algorithm for these methods is
      changed: the old one's time complexity was O(n), where n is the value of
      offset or the amount of counted tuples. The new algorithm's complexity is
      O(log(size)), where size is the number of tuples stored in the index. Now
      it does not depend on the offset value or the amount of tuples to count. It
      is safe to use these functions with arbitrary big offset values and tuple
      count (gh-8204).
    • Introduced a new offset parameter in the index:pairs method. It allows to
      skip the first tuples of the iterator (gh-8204).
    • Introduced a new index:offset_of method. It allows to get the position in
      the index relative to the iterator direction of a tuple matching the given
      key and iterator (gh-8204).
    • Introduced the new count method of an index and space read view. The method
      returns the amount of tuples in the index (or primary key of a space) matching
      the given key and iterator type (ee-858).
    • Improved performance of memtx tree index read view select() method with
      the offset specified. The underlying algorithm for the method is changed.
      The time complexity of the old algorithm was O(n), where n is the value
      of offset. The new algorithm's complexity is O(log(size)), where size
      is the number of tuples stored in the index. Now it does not depend on the
      offset value. It is safe to use the function with arbitrary big offset
      values (ee-858).
    • Introduced a new offset parameter in the index_read_view:pairs method. It
      allows to skip the first tuples of the iterator (ee-858).
    • Introduced a new index_read_view:offset_of Lua API. It allows to get the
      0-based offset in the index relative to the iterator direction of a tuple
      that matches the given key and iterator type (ee-858).
  • persistent gc state of replicas (Persistent garbage collection state tarantool#10154). Changelog:
    • Now all replicas have WAL GC consumers persisted in the _gc_consumers
      space (gh-10154). The wal_cleanup_delay option is no longer needed,
      so it is deprecated.
  • don't rollback synchronous transaction upon reaching replication_synchro_timeout
    (Deprecate IPROTO_RAFT_ROLLBACK and replication_synchro_timeout tarantool#7486). Changelogs:
    • A new compat option compat.replication_synchro_timeout has been added.
      This option determines whether the replication.synchro_timeout option rolls
      back transactions. When set to 'new', transactions are not rolled back due to
      a timeout. In this mode replication.synchro_timeout is used to wait
      confirmation in promote/demote and gc-checkpointing. If 'old' is set, the
      behavior is no different from what it was before this patch appeared.
    • A new replication.synchro_queue_max_size option limits the number of
      transactions in the master synchronous queue.
      replication.synchro_queue_max_size is measured in the number of bytes to be
      written (0 means unlimited, which was the default behavior before).
      Currently, this option defaults to 16 megabytes. (gh-7486)
  • C API for sending work to TX thread. Changelog:
    • The new public C API functions tnt_tx_push(callback) and tnt_tx_flush()
      allow to send work to TX thread from any other thread.

Metadata

Metadata

Assignees

Labels

3.3release-notesWriting and editing release notes

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions