diff --git a/doc/release/1.10.10.rst b/doc/release/1.10.10.rst
deleted file mode 100644
index d365a31c8b..0000000000
--- a/doc/release/1.10.10.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-Tarantool 1.10.10
-=================
-
-Released on 2021-04-21.
-
-* Release :tarantool-release:`1.10.10`.
-* Tagged ``1.10.10-0-gaea7ae7``
-
-
-Overview
---------
-
-1.10.10 is the next stable release in the
-:doc:`long-term support (LTS) version `
-1.10.x release series.
-
-The label "stable" means there are 1.10.x-based applications running in
-production for quite a while without known crashes, incorrect results or
-other showstopper bugs.
-
-This release introduces 12 improvements and resolves roughly 3 issues
-since version :doc:`1.10.9 `.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- Tarantool build infrastructure now requires CMake version 3.1 or later.
-- Binary packages for Fedora 33 (:tarantool-issue:`5502`) are now available.
-- Binary packages for CentOS 6 and Debian Jessie won't be published since this version.
-- Backported the ``-DENABLE_LTO=ON/OFF`` CMake option (:tarantool-issue:`3117`,
- :tarantool-issue:`3743`).
- It is useful for building packages for Fedora 33 (:tarantool-issue:`5502`).
-- The built-in zstd is upgraded from v1.3.3 to v1.4.8
- (part of :tarantool-issue:`5502`).
-- ``libcurl`` symbols in the case of bundled libcurl are now exported
- (:tarantool-issue:`5223`, :tarantool-issue:`5542`).
-- SMTP and SMTPS protocols are now enabled in the bundled ``libcurl`` (:tarantool-issue:`4559`).
-- The ``libcurl`` headers are now shipped to system path ``${PREFIX}/include/tarantool``
- when ``libcurl`` is included as a bundled library or in a static build
- (:tarantool-issue:`4559`).
-
-Testing
-~~~~~~~
-
-- Tarantool CI/CD has migrated to GitHub Actions (:tarantool-issue:`5662`).
-- Implemented a self-sufficient LuaJIT testing environment. As a result,
- LuaJIT build system is now partially ported to CMake and all testing
- machinery is enclosed within the `tarantool/luajit `__
- repository (:tarantool-issue:`4862`, :tarantool-issue:`5470`).
-- Python 3 is now the default in the test infrastructure (:tarantool-issue:`5652`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Extensive usage of ``uri`` and ``uuid`` modules with debug log level
- no longer leads to crashes or corrupted results of the functions from these
- modules.
- Same problem is resolved for using these modules from the callbacks passed to ``ffi.gc()``,
- and for some functions from the modules ``fio``, ``box.tuple``, and ``iconv``
- (:tarantool-issue:`5632`).
-
-Lua
-~~~
-
-- Fixed the `-e` option, when ``tarantool`` used to enter the interactive mode when
- stdin is a TTY. Now, ``tarantool -e 'print"Hello"'`` doesn't enter the
- interactive mode, but just prints "Hello" and exits
- (:tarantool-issue:`5040`).
-
-
-Build
-~~~~~
-
-- Recovering with ``force_recovery`` option now deletes vylog files newer than the snapshot.
- It helps an instance recover after incidents during a checkpoint (:tarantool-issue:`5823`).
diff --git a/doc/release/1.10.11.rst b/doc/release/1.10.11.rst
deleted file mode 100644
index 968c98abec..0000000000
--- a/doc/release/1.10.11.rst
+++ /dev/null
@@ -1,180 +0,0 @@
-Tarantool 1.10.11
-=================
-
-Released on 2021-08-19.
-
-* Release :tarantool-release:`1.10.11`.
-* Tagged ``1.10.11-0-gf0b0e7e``
-
-Overview
---------
-
-1.10.11 is the next stable release in the
-:doc:`long-term support (LTS) version `
-1.10.x release series.
-
-The label "stable" means there are 1.10.x-based applications running in
-production for quite a while without known crashes, incorrect results or
-other showstopper bugs.
-
-This release introduces 2 improvements and resolves roughly 18 issues
-since version :doc:`1.10.10 `.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Some changes are labeled as **[Breaking change]**.
-It means that the old behavior was considered error-prone
-and therefore changed to protect users from unintended mistakes.
-However, there is a small probability that someone can rely on the old behavior,
-and this label is to bring attention to the things that have been changed.
-
-Functionality added or changed
-------------------------------
-
-LuaJIT
-~~~~~~
-
-- Introduced support for ``LJ_DUALNUM`` mode in ``luajit-gdb.py``
- (:tarantool-issue:`6224`).
-
-Build
-~~~~~
-
-- Fedora 34 builds are now supported
- (:tarantool-issue:`6074`).
-
-- Fedora 28 and 29 builds are no longer supported.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- **[Breaking change]** ``fiber.wakeup()`` in Lua and
- ``fiber_wakeup()`` in C became NOP on the currently running fiber.
- Previously they allowed “ignoring” the next yield or sleep, which
- resulted in unexpected erroneous wake-ups. Calling these functions
- right before ``fiber.create()`` in Lua or ``fiber_start()`` in C
- could lead to a crash (in debug build) or undefined behaviour (in
- release build) (:tarantool-issue:`6043`).
-
- There was a single use case for the previous behaviour: rescheduling
- in the same event loop iteration, which is not the same as
- ``fiber.sleep(0)`` in Lua and ``fiber_sleep(0)`` in C. It could be
- done in the following way:
-
- in C:
-
- .. code:: c
-
- fiber_wakeup(fiber_self());
- fiber_yield();
-
- and in Lua:
-
- .. code:: lua
-
- fiber.self():wakeup()
- fiber.yield()
-
- To get the same effect in C, one can now use ``fiber_reschedule()``.
- In Lua, it is now impossible to reschedule the current fiber directly
- in the same event loop iteration. One can reschedule self
- through a second fiber, but it is strongly discouraged:
-
- .. code:: lua
-
- -- do not use this code
- local self = fiber.self()
- fiber.new(function() self:wakeup() end)
- fiber.sleep(0)
-
-- Fixed memory leak on ``box.on_commit()`` and
- ``box.on_rollback()`` (:tarantool-issue:`6025`).
-
-- Fixed invalid results of the ``json`` module’s ``encode``
- function when it was used from the Lua garbage collector. For
- example, this could happen in functions used as ``ffi.gc()``
- (:tarantool-issue:`6050`).
-
-- Fixed console client connection failure in case of request timeout
- (:tarantool-issue:`6249`).
-
-- Added a missing broadcast to ``net.box.future:discard()`` so that now
- fibers waiting for a request result wake up when the request is discarded
- (:tarantool-issue:`6250`).
-
-- Fixed a bug when iterators became invalid (up to crash) after schema change
- (:tarantool-issue:`6147`).
-
-- Fixed crash in case of reloading a compiled module when the new module lacks some functions
- present in the former code. In turn, this event triggers a fallback procedure where we restore old functions,
- but instead of restoring each function, we process a sole entry only, leading to the crash later
- when these restored functions are called
- (:tarantool-issue:`5968`).
-
-Vinyl
-~~~~~
-
-- Fixed possible keys divergence during secondary index build, which
- might lead to missing tuples
- (:tarantool-issue:`6045`).
-
-- Fix crash which may occur while switching read_only mode due to duplicating
- transaction in tx writer list (:tarantool-issue:`5934`).
-
-- Fixed the race between Vinyl garbage collection and compaction that
- resulted in a broken vylog and recovery failure
- (:tarantool-issue:`5436`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed replication occasionally stopping with ``ER_INVALID_MSGPACK``
- when the replica is under high load (:tarantool-issue:`4040`).
-
-LuaJIT
-~~~~~~
-
-- Fixed optimization for single-char strings in the ``IR_BUFPUT`` assembly
- routine.
-
-- Fixed slots alignment in the ``lj-stack`` command output when ``LJ_GC64``
- is enabled (:tarantool-issue:`5876`).
-
-- Fixed dummy frame unwinding in the ``lj-stack`` command.
-
-- Fixed detection of inconsistent renames even in the presence of sunk
- values (:tarantool-issue:`4252`, :tarantool-issue:`5049`, :tarantool-issue:`5118`).
-
-- Fixed the VM register allocation order provided by LuaJIT frontend in case
- of ``BC_ISGE`` and ``BC_ISGT`` (:tarantool-issue:`6227`).
-
-Lua
-~~~
-
-- When an error occurs during encoding call results, the auxiliary
- lightuserdata value is not removed from the main Lua coroutine stack.
- Before the fix, it led to undefined behaviour during the next
- usage of this Lua coroutine (:tarantool-issue:`4617`).
-
-- Fixed a Lua C API misuse when the error is raised during call results
- encoding in an unprotected coroutine and expected to be caught in a
- different, protected coroutine (:tarantool-issue:`6248`).
-
-Triggers
-^^^^^^^^
-
-- Fixed a possible crash in case trigger removes itself. Fixed a
- possible crash in case someone destroys a trigger when it
- yields (:tarantool-issue:`6266`).
\ No newline at end of file
diff --git a/doc/release/1.10.12.rst b/doc/release/1.10.12.rst
deleted file mode 100644
index 514ed4ecc5..0000000000
--- a/doc/release/1.10.12.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-Tarantool 1.10.12
-=================
-
-Released on 2021-12-22.
-
-* Release: :tarantool-release:`1.10.12`.
-* Tag: ``1.10.12``.
-
-Overview
---------
-
-1.10.12 is the next stable release in the :doc:`long-term support (LTS) version `
-1.10.x release series.
-
-The label “stable” means there are 1.10.x-based applications running in
-production for quite a while without known crashes, incorrect results or
-other showstopper bugs.
-
-This release introduces 3 improvements and resolves roughly 10 issues
-since the 1.10.11 version.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- Stop support of Ubuntu Trusty (14.04). (:tarantool-issue:`6502`)
-- Bump debian package compatibility level to 10 (:tarantool-issue:`5429`). Bump minimal
- required debhelper to version 10 (except for Ubuntu Xenial).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a crash caused by a race between box.session.push() and closing
- connection (:tarantool-issue:`6520`).
-- Fixed crash in case a fiber changing box.cfg.listen is woken up
- (:tarantool-issue:`6480`).
-- Fixed box.cfg.listen not reverted to the old address in case the new
- one is invalid (:tarantool-issue:`6092`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed replica reconnecting to a living master on any
- ``box.cfg{replication=...}`` change. Such reconnects could lead to
- replica failing to restore connection for ``replication_timeout``
- seconds (:tarantool-issue:`4669`).
-
-LuaJIT
-~~~~~~
-
-- Fixed the order VM registers are allocated by LuaJIT frontend in case
- of ``BC_ISGE`` and ``BC_ISGT`` (:tarantool-issue:`6227`).
-- Fixed inconsistency while searching for an error function when
- unwinding a C protected frame to handle a runtime error (e.g. an
- error in \__gc handler).
-
-Lua
-~~~
-
-- When error is raised during encoding call results, auxiliary
- lightuserdata value is not removed from the main Lua coroutine stack.
- Prior to the fix it leads to undefined behaviour during the next
- usage of this Lua coroutine (:tarantool-issue:`4617`).
-- Fixed Lua C API misuse, when the error is raised during call results
- encoding on unprotected coroutine and expected to be catched on the
- different one, that is protected (:tarantool-issue:`6248`).
-
-Triggers
-~~~~~~~~
-
-- Fixed possibility crash in case when trigger removes itself. Fixed
- possibility crash in case when someone destroy trigger, when it’s
- yield (:tarantool-issue:`6266`).
-
-Build
-~~~~~
-
-- The Debian package does not depend on binutils anymore (:tarantool-issue:`6699`).
-- Fix build errors with glibc-2.34 (:tarantool-issue:`6686`).
diff --git a/doc/release/1.10.13.rst b/doc/release/1.10.13.rst
deleted file mode 100644
index 0d4f757b6b..0000000000
--- a/doc/release/1.10.13.rst
+++ /dev/null
@@ -1,107 +0,0 @@
-Tarantool 1.10.13
-=================
-
-Released on 2022-04-25.
-
-* Release: :tarantool-release:`1.10.13`.
-* Tag: ``1.10.13``.
-
-Overview
---------
-
-1.10.13 is the next stable release in the :doc:`long-term support (LTS) version `
-1.10.x release series.
-
-The label “stable” means there are 1.10.x-based applications running in
-production for quite a while without known crashes, incorrect results or
-other showstopper bugs.
-
-This release introduces 1 improvement and resolves roughly 13 issues
-since the :doc:`1.10.12 ` version.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- Support fedora-35 build (:tarantool-issue:`6692`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed memory leak in interactive console (:tarantool-issue:`6817`).
-
-- Fixed an assertion fail when passing tuple without primary key fields
- to ``before_replace`` trigger. Now tuple format is checked before the
- execution of ``before_replace`` triggers and after each one (:tarantool-issue:`6780`).
-
-- Now inserting a tuple with the wrong ``id`` field into the ``_priv`` space
- returns the correct error (:tarantool-issue:`6295`).
-
-- Fixed a bug due to which all fibers created with
- ``fiber_attr_setstacksize()`` leaked until the thread exit. Their
- stacks also leaked except when ``fiber_set_joinable(..., true)`` was
- used.
-
-- Fixed a crash when Tarantool was launched with multiple ``-e`` or ``-l``
- options without a space between the option and the value (:tarantool-issue:`5747`).
-
-Vinyl
-~~~~~
-
-- Immediate removal of compacted run files created after the last
- checkpoint optimization now works for replica’s initial JOIN stage
- (:tarantool-issue:`6568`).
-
-- Fixed crash during recovery of a secondary index in case the primary
- index contains incompatible phantom tuples (:tarantool-issue:`6778`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed replicas failing to bootstrap when master is just re-started
- (:tarantool-issue:`6966`).
-
-LuaJIT
-~~~~~~
-
-- Fixed top part of Lua stack (red zone, free slots, top slot)
- unwinding in ``lj-stack`` command.
-
-- Added the value of ``g->gc.mmudata`` field to ``lj-gc`` output.
-- ``string.char()`` builtin recording is fixed in case when no
- arguments are given (:tarantool-issue:`6371`, :tarantool-issue:`6548`).
-
-- Actually made JIT respect ``maxirconst`` trace limit while recording
- (:tarantool-issue:`6548`).
-
-Box
-~~~
-
-- Added iterator type checking and allow passing iterator as a
- ``box.index.{ALL,GT,…}`` directly (:tarantool-issue:`6501`).
-
-Recovery
-~~~~~~~~
-
-- When ``force_recovery`` cfg option is set, Tarantool is able to boot
- from ``snap``/``xlog`` combinations where ``xlog`` covers changes
- committed both before and after ``snap`` creation. For example,
- ``0...0.xlog``, covering everything up to ``vclock {1: 15}`` and
- ``0...09.snap``, corresponding to ``vclock {1: 9}`` (:tarantool-issue:`6794`).
-
\ No newline at end of file
diff --git a/doc/release/1.10.14.rst b/doc/release/1.10.14.rst
deleted file mode 100644
index 483bc4741b..0000000000
--- a/doc/release/1.10.14.rst
+++ /dev/null
@@ -1,158 +0,0 @@
-Tarantool 1.10.14
-=================
-
-Released on 2022-08-08.
-
-* Release: :tarantool-release:`1.10.14`.
-* Tag: ``1.10.14``.
-
-Overview
---------
-
-1.10.14 is the next stable release in the :doc:`long-term support (LTS) version `
-1.10.x release series.
-
-The label “stable” means there are 1.10.x-based applications running in
-production for quite a while without known crashes, incorrect results or
-other showstopper bugs.
-
-This release introduces 10 improvements and resolves roughly 20 issues
-since the :doc:`1.10.13 ` version.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- Fedora 35 is now supported (:tarantool-issue:`6692`).
-- Fedora 36 is now supported.
-- Ubuntu 22.04 (Jammy Jellyfish) is now supported.
-- Fedora 30, 31, 32, and 33 are no longer supported.
-- Ubuntu 21.04 (Hirsute Hippo) is no longer supported.
-- Updated OpenSSL used for static builds to version 1.1.1n (:tarantool-issue:`6947`).
-- Updated OpenSSL used for static builds to version 1.1.1q.
-- Updated libcurl to version 7.83.0 (:tarantool-issue:`6029`).
-- Updated libcurl to version 7.84.0.
-- Updated libyaml to the version with fixed stack overflows.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a memory leak in the interactive console (:tarantool-issue:`6817`).
-- Fixed an assertion fail when passing a tuple without the primary key
- fields to a ``before_replace`` trigger. Now the tuple format is
- checked before the execution of ``before_replace`` triggers and after
- each of them (:tarantool-issue:`6780`).
-- Now inserting a tuple with a wrong ``id`` field into the ``\_priv``
- space returns the correct error (:tarantool-issue:`6295`).
-- Fixed a bug that was making all fibers created with
- ``fiber_attr_setstacksize()`` leak until the thread exit. Their
- stacks also leaked except when ``fiber_set_joinable(..., true)`` was
- used.
-- Fixed a crash that happened when Tarantool was launched with multiple
- ``-e`` or ``-l`` options without spaces between the options and their
- values (:tarantool-issue:`5747`).
-- Fixed the usage of ``box.session.peer()`` in
- ``box.session.on_disconnect()`` triggers. Now it’s safe to assume
- that ``box.session.peer()`` returns the address of the disconnected
- peer, not nil, as it used to (:tarantool-issue:`7014`).
-- Fixed a bug in the sequence cache that could result in an error
- creating a new sequence (:tarantool-issue:`5306`).
-
-Vinyl
-~~~~~
-
-- Immediate removal of compacted run files created after the last
- checkpoint optimization now works for the initial JOIN stage of a
- replica (:tarantool-issue:`6568`).
-- Fixed a crash during the recovery of a secondary index in case the
- primary index contains incompatible phantom tuples (:tarantool-issue:`6778`).
-- Fixed a bug in the vinyl upsert squashing optimization that could
- lead to a segmentation fault error (:tarantool-issue:`5080`).
-- Fixed a bug in the vinyl read iterator that could result in a
- significant performance degradation of range select requests in the
- presence of an intensive write workload (:tarantool-issue:`5700`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed replicas failing to bootstrap when the master has just
- restarted (:tarantool-issue:`6966`).
-
-LuaJIT
-~~~~~~
-
-- Fixed the top part of Lua stack (red zone, free slots, top slot)
- unwinding in the ``lj-stack`` command.
-
-- Added the value of ``g->gc.mmudata`` field to ``lj-gc`` output.
-
-- Fixed a bug with ``string.char()`` builtin recording when no
- arguments are provided (:tarantool-issue:`6371`, :tarantool-issue:`6548`).
-
-- Actually made JIT respect the ``maxirconst`` trace limit while
- recording (:tarantool-issue:`6548`).
-
-- Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`6548`, :tarantool-issue:`7230`).
- In the scope of this activity, the following issues have been resolved:
-
- - Fixed emitting for fuse load of constant in GC64 mode (:tarantool-issue:`4095`,
- :tarantool-issue:`4199`, :tarantool-issue:`4614`).
- - Now initialization of zero-filled struct is compiled (:tarantool-issue:`4630`,
- :tarantool-issue:`5885`).
- - Actually implemented ``maxirconst`` option for tuning JIT
- compiler.
- - Fixed JIT stack of Lua slots overflow during recording for
- metamethod calls.
- - Fixed bytecode dump unpatching for JLOOP in up-recursion compiled
- functions.
- - Fixed FOLD rule for strength reduction of widening in cdata
- indexing.
- - Fixed ``string.char()`` recording without arguments.
- - Fixed ``print()`` behaviour with the reloaded default metatable
- for numbers.
- - ``tonumber("-0")`` now saves the sign of number for conversion.
- - ``tonumber()`` now gives predictable results for negative
- non-base-10 numbers.
- - Fixed write barrier for ``debug.setupvalue()`` and
- ``lua_setupvalue()``.
- - ``jit.p`` now flushes and closes output file after run, not at
- program exit.
- - Fixed ``jit.p`` profiler interaction with GC finalizers.
- - Fixed the case for partial recording of vararg function body with
- the fixed number of result values in with ``LJ_GC64``
- (i.e. ``LJ_FR2`` enabled) (:tarantool-issue:`7172`).
- - Fixed handling of errors during trace snapshot restore.
-
-Box
-~~~
-
-- Added the check of the iterator type in the ``select``, ``count``,
- and ``pairs`` methods of the index object. Iterator can now be passed
- to these methods directly: ``box.index.ALL``, ``box.index.GT``, and
- so on (:tarantool-issue:`6501`).
-
-Recovery
-~~~~~~~~
-
-- With the ``force_recovery`` cfg option, Tarantool is now able to boot
- from ``snap``/``xlog`` combinations where ``xlog`` covers changes
- committed both before and after the ``snap`` was created. For
- example, ``0...0.xlog`` that covers everything up to vclock
- ``{1: 15}`` and ``0...09.snap`` corresponding to vclock ``{1: 9}``
- (:tarantool-issue:`6794`).
diff --git a/doc/release/1.10.15.rst b/doc/release/1.10.15.rst
deleted file mode 100644
index 6b9e5fcecf..0000000000
--- a/doc/release/1.10.15.rst
+++ /dev/null
@@ -1,113 +0,0 @@
-Tarantool 1.10.15
-=================
-
-Released on 2023-02-20.
-
-* Release: :tarantool-release:`1.10.15`.
-* Tag: ``1.10.15``.
-
-Overview
---------
-
-1.10.15 is the next stable release in the :doc:`long-term support (LTS) version `
-1.10.x release series.
-
-The label “stable” means there are 1.10.x-based applications running in
-production for quite a while without known crashes, incorrect results or
-other showstopper bugs.
-
-This release introduces 2 improvements and resolves roughly 8 issues
-since the :doc:`1.10.14 ` version.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- OpenSUSE 15.1 and 15.2 are no longer supported.
-- Updated libcurl to version 7.87.0 (:tarantool-issue:`8150`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a bug when fields could be removed from a table stored in a
- variable when a logging function was called on this variable (for
- example, ``log.info(a)``) (:tarantool-issue:`3853`).
-
-- Fixed a logging bug: when logging tables with fields that have
- reserved internal names (such as ``pid``) in the plain log format,
- such fields weren’t logged (:tarantool-issue:`3853`).
-
-- Added the ``message`` field when logging tables without such field in
- the JSON log format (:tarantool-issue:`3853`).
-
-- Fixed an assertion on malformed JSON message written to the log
- (:tarantool-issue:`7955`).
-
-Vinyl
-~~~~~
-
-- Fixed a bug that could result in ``select()`` skipping an existing
- tuple after a rolled back ``delete()`` (:tarantool-issue:`7947`).
-
-LuaJIT
-~~~~~~
-
-Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`7230`). In the scope of
-this activity, the following issues have been resolved:
-
-- Fix overflow check in ``unpack()`` optimized by a compiler.
-- Fix recording of ``tonumber()`` with cdata argument for failed
- conversions (:tarantool-issue:`7655`).
-- Fix concatenation operation on cdata. It always raises an error now.
-- Fix ``io.close()`` for already closed standard output.
-- Fix trace execution and stitching inside vmevent handler (:tarantool-issue:`6782`).
-- Fixed ``emit_loadi()`` on x86/x64 emitting xor between condition
- check and jump instructions.
-- Fix stack top for error message when raising the OOM error (:tarantool-issue:`3840`).
-- Disabled math.modf compilation due to its rare usage and difficulties
- with proper implementation of the corresponding JIT machinery.
-- Fixed inconsistent behaviour on signed zeros for JIT-compiled unary
- minus (:tarantool-issue:`6976`).
-- Fixed ``IR_HREF`` hash calculations for non-string GC objects for
- GC64.
-- Fixed assembling of type-check-only variant of ``IR_SLOAD``.
-- Fixed the Lua stack dump command (``lj-stack``) not working on Python
- 2. Previously, it used arguments unpacking within the list
- initialization, which is not supported in Python 2 (:tarantool-issue:`7458`).
-
-Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`8069`). In the scope of
-this activity, the following issues have been resolved:
-
-- Fixed loop realigment for dual-number mode
-- Fixed os.date() for wider libc strftime() compatibility.
-
-Fiber
-~~~~~
-
-- Fixed the assertion fail in ``cord_on_yield`` (:tarantool-issue:`6647`).
-
-Log
-~~~
-
-- Fixed an incorrect facility value in syslog on Alpine (:tarantool-issue:`8269`).
-
-Build
-~~~~~
-
-- Fixed ``-Werror`` build fail on Clang 15 (:tarantool-issue:`8110`).
diff --git a/doc/release/1.10.5.rst b/doc/release/1.10.5.rst
deleted file mode 100644
index 98c750a415..0000000000
--- a/doc/release/1.10.5.rst
+++ /dev/null
@@ -1,196 +0,0 @@
-Tarantool 1.10.5
-================
-
-Release: :tarantool-release:`1.10.5`
-
-Date: 2020-01-14 Tag: 1.10.5-0-g83a2ae9
-
-Overview
---------
-
-1.10.5 is the next stable release of the 1.10.x series. The label
-“stable” means there are 1.10.x-based applications running in production
-for quite a while without known crashes, incorrect results or other
-showstopper bugs.
-
-This release resolves roughly 30 issues since 1.10.4. There may be bugs
-in less common areas. If you find any, feel free to report an issue at
-`GitHub `_.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol. Please
-`upgrade `_
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Lua
-~~~
-
-- Exit gracefully when a main script throws an error: notify systemd,
- log the error (:tarantool-issue:`4382`).
-- Enable ``__pairs`` and ``__ipairs`` metamethods from Lua 5.2
- (:tarantool-issue:`4560`). We still conform Lua 5.1 API that is not always
- compatible with Lua 5.2. The change is only about those metamethods.
-
-Misc
-~~~~
-
-- Add package builds and deployment for the following Linux distros:
-
- - Ubuntu 19.10 Eoan Ermine, (:tarantool-issue:`4583`)
- - CentOS 8, (:tarantool-issue:`4543`)
- - Fedora 31, (:tarantool-issue:`4612`)
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- fiber: make sure the guard page is created; refuse to create a new
- fiber otherwise (:tarantool-issue:`4541`). It is possible in case of heavy
- memory usage, say, when there is no resources to split VMAs.
-- Forbid ``00000000-0000-0000-0000-000000000000`` as the value of
- ``box.cfg({<...>})`` options: ``replicaset_uuid`` and
- ``instance_uuid`` (:tarantool-issue:`4282`). It did not work as expected:
- the nil UUID was treated as absence of the value.
-- Update cache of universe privileges without reconnect (:tarantool-issue:`2763`).
-- net.box: don’t fire the ``on_connect`` trigger on schema update
- (:tarantool-issue:`4593`). Also don’t fire the ``on_disconnect`` trigger
- if a connection never entered into the ``active`` state
- (e.g. when the first schema fetch is failed).
-- func: fix use-after-free on function unload.
- `fce9cf96 `_
-- Don’t destroy a session until ``box.session.on_disconnect(<...>)``
- triggers are finished (:tarantool-issue:`4627`). This means, for example, that
- ``box.session.id()`` can be safely invoked from the ``on_disconnect``
- trigger. Before this change ``box.session.id()`` returned garbage
- (usually 0) after yield in the ``on_disconnect`` trigger. *Note*:
- `tarantool/queue `_ module is
- affected by this problem in `some
- scenarios `__. It is
- especially suggested to update Tarantool at least to this release if
- you’re using this module.
-- Handle OOM gracefully during allocating a buffer for binary protocol
- response.
- `5c5a4e2d `_
-- func: Fix ``box.schema.func.drop(<..>)`` to unload unused modules
- (:tarantool-issue:`4648`). Also fix ``box.schema.func.create(<..>)``
- to avoid loading a module again when another function from the module is loaded.
-- Encode Lua number -2^63 as integer in ``msgpack.encode()`` and box’s
- functions (:tarantool-issue:`4672`).
-
-Replication
-~~~~~~~~~~~
-
-- Prefer to bootstrap a replica from a fully bootstrapped instance
- rather than from an instance that is in the process of bootstrapping
- (:tarantool-issue:`4527`).
-
- This change enables the case when two nodes (B, C) are being
- bootstrapped simultaneously using the one that is already
- bootstrapped (A), while A is configured to replicate from {B, C} and
- B – from {A, C}.
-- Return immediately from ``box.cfg{<...>}`` when an instance is
- reconfigured with ``replication_connect_quorum = 0``
- (:tarantool-issue:`3760`).
-
- This change also fixes the behaviour of reconfiguration with non-zero
- ``replication_connect_quorum``: ``box.cfg{<...>}`` returns
- immediately regardless of whether connections to upstreams are
- established.
-- Auto reconnect a replica if password is invalid (:tarantool-issue:`4550`).
-- Use empty password when a URI in ``box.cfg{replication = <...>}`` is
- like ``login@host:port`` (:tarantool-issue:`4605`).
-
- This behaviour matches the net.box’s one now.
- Explicit ``login:@host:port`` was necessary
- before, otherwise a replica displayed the following error:
-
- Missing mandatory field 'tuple' in request
-
-- Fix segfault during replication configuration
- (``box.cfg{replication = <...>}`` call)
- (:tarantool-issue:`4440`, :tarantool-issue:`4576`, :tarantool-issue:`4586`,
- :tarantool-issue:`4643`).
-- Apply replication settings of ``box.cfg({<...>})`` in the strict
- order (:tarantool-issue:`4433`).
-
-Lua
-~~~
-
-- Fix handling of a socket read error in the console client
- (``console.connect()`` or ``tarantoolctl connect/enter <...>``).
- `1f86e6cc `_
-- Handle the “not enough memory” error gracefully when it is raised
- from ``lua_newthread()`` (:tarantool-issue:`4556`). There are several cases
- when a new Lua thread is created:
-
- - Start executing a Lua function call or an eval request (from a
- binary protocol, SQL or with ``box.func.<...>:call()``).
- - Create of a new fiber.
- - Start execution of a trigger.
- - Start of encoding into a YAML format (``yaml.encode()``).
-
-- Fix stack-use-after-scope in ``json.decode()`` (:tarantool-issue:`4637`).
-- Allow to use ``cdata`` (e.g. buffer.IBUF_SHARED) as
- the argument to ``msgpack.encode()``.
- `6d38f0c5 `_
- Before this change the ``cdata`` type was allowed, but
- not the corresponding pointer type.
-- A pointer returned by ``msgpack.decode*(cdata<[char] const *>)``
- functions can be assigned to buffer.rpos now (and the same for
- msgpackffi) (:tarantool-issue:`3926`).
-
- All those functions now return
- ``cdata`` or ``cdata`` depending of a passed
- argument. Example of the code that did not work:
- ``res, buf.rpos = msgpack.decode(buf.rpos, buf:size())``.
-- Fix race in ``fio.mktree()`` when two tarantool processes create the
- same directory tree simultaneously (:tarantool-issue:`4660`). This problem affects
- `tarantool/cartrige `_, see
- `cartrige#gh-382 `_.
-
-HTTP client
-^^^^^^^^^^^
-
-- Disable verbose mode when ``{verbose = false}`` is passed.
- `28f8a5eb `_
-- Fix assertion fail after a curl write error (:tarantool-issue:`4232`).
-
-LuaJIT
-~~~~~~
-
-- Fix the “Data segment size exceeds process limit” error on
- FreeBSD/x64: do not change resource limits when it is not necessary
- (:tarantool-issue:`4537`).
-- fold: keep type of emitted CONV in sync with its mode.
- `LuaJIT#524 `_ This
- fixes the following assertion fail:
-
- asm_conv: Assertion \`((IRType)((ir->t).irt & IRT_TYPE)) != st’ failed
-
-Misc
-~~~~
-
-- Fix CLI boolean options handling in ``tarantoolctl cat <...>``, such
- as ``--show-system`` (:tarantool-issue:`4076`).
-- Fix segfault (out of bounds access) when a stack unwinding error
- occurs at backtrace printing (:tarantool-issue:`4636`). Backtrace is printed
- on SIGFPE and SIGSEGV signals or when LuaJIT finds itself in the unrecoverable
- state (``lua_atpanic()``).
-- Clear terminal state on panic (:tarantool-issue:`4466`).
-
-Building from sources
-^^^^^^^^^^^^^^^^^^^^^
-
-- Fix OpenSSL linking problems on FreeBSD (:tarantool-issue:`4490`).
-- Fix linking problems on Mac OS when several toolchains are in PATH
- (:tarantool-issue:`4587`).
-- Fix GCC 9 warning on ``strncpy()`` (:tarantool-issue:`4515`).
diff --git a/doc/release/1.10.6.rst b/doc/release/1.10.6.rst
deleted file mode 100644
index 805377d6bd..0000000000
--- a/doc/release/1.10.6.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-Tarantool 1.10.6
-================
-
-Release: :tarantool-release:`1.10.6`
-
-Date: 2020-04-20 Tag: 1.10.6-1-g47c009a
-
-Overview
---------
-
-1.10.6 is the next stable release of the 1.10.x series. The label
-“stable” means there are 1.10.x-based applications running in production
-for quite a while without known crashes, incorrect results or other
-showstopper bugs.
-
-This release resolves roughly 20 issues since 1.10.5. There may be bugs
-in less common areas. If you find any, feel free to report an issue at
-GitHub.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol. Please
-upgrade using the box.schema.upgrade() procedure to unlock all the new
-features of the 1.10.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- ``fiber.storage`` is cleaned between requests, and can be used as a
- request-local storage. Previously ``fiber.storage`` could contain
- some old values in the beginning of an iproto request execution, and
- it needed to be nullified manually. Now the cleanup is unneeded
- (:tarantool-issue:`4662`).
-- ``tuple``/``space``/``index``:``update()``/``upsert()`` were fixed
- not to turn a value into an infinity when a float value was added to
- or subtracted from a float column and exceeded the float value range
- (:tarantool-issue:`4701`).
-- Make RTREE indexes handle the out of memory error: before this fix,
- OOM during the recovery of an RTREE index resulted in segmentation
- fault (:tarantool-issue:`4619`).
-- Add cancellation guard to avoid WAL thread stuck (:tarantool-issue:`4127`).
-
-Replication
-~~~~~~~~~~~
-
-- Fix the rebootstrap procedure not working if the replica itself is
- listed in ``box.cfg.replication`` (:tarantool-issue:`4759`).
-- Fix possible user password leaking via replication logs
- (:tarantool-issue:`4493`).
-- Local space operations are now counted in 0th vclock component. Every
- instance may have its own 0-th vclock component not matching others’.
- Local space operations are not replicated at all, even as NOPs
- (:tarantool-issue:`4114`).
-- Gc consumers are now ordered by their vclocks and not by vclock
- signatures. Only the WALS that contain no entries needed by any of
- the consumers are deleted (:tarantool-issue:`4114`).
-
-Lua
-~~~
-
-- json: ``:decode()`` doesn’t spoil instance’s options with per-call
- ones (when it is called with the second argument) (:tarantool-issue:`4761`).
-- ``os.environ()`` is now changed when ``os.setenv()`` is called
- (:tarantool-issue:`4733`).
-- ``netbox.self:call/eval()`` now returns the same types as
- ``netbox_connection:call``/``eval``. Previously it could return a
- tuple or ``box.error`` cdata (:tarantool-issue:`4513`).
-- libev: backport fix for listening for more then 1024 file descriptors
- on Mac OS (:tarantool-issue:`3867`).
-
-HTTP client
-^^^^^^^^^^^
-
-- When building Tarantool with bundled ``libcurl``, link it with the
- ``c-ares`` library by default (:tarantool-issue:`4591`).
-
-LuaJIT
-~~~~~~
-
-- ``__pairs``/``__ipairs`` metamethods handling is removed since we
- faced the issues with the backward compatibility between Lua 5.1 and
- Lua 5.2 within Tarantool modules as well as other third party code
- (:tarantool-issue:`4770`).
-
-- Introduce ``luajit-gdb.py`` extension with commands for inspecting
- LuaJIT internals. The extension obliges one to provide gdbinfo for
- ``libluajit``, otherwise loading fails. The extension provides the
- following commands:
-
- - ``lj-arch`` dumps values of LJ_64 and LJ_GC64 macro definitions
- - ``lj-tv`` dumps the type and GCobj info related to the given
- TValue
- - ``lj-str`` dumps the contents of the given GCstr
- - ``lj-tab`` dumps the contents of the given GCtab
- - ``lj-stack`` dumps Lua stack of the given lua_State
- - ``lj-state`` shows current VM, GC and JIT states
- - ``lj-gc`` shows current GC stats
-
-- Fix string to number conversion: current implementation respects the
- buffer length (:tarantool-issue:`4773`).
-
-- “FFI sandwich”(*) detection is introduced. If sandwich is detected
- while trace recording the recording is aborted. The sandwich detected
- while mcode execution leads to the platform panic.
-
-- luaJIT_setmode call is prohibited while mcode execution and leads to
- the platform panic.
-
-(*) The following stack mix is called FFI sandwich:
-
- Lua-FFI -> C routine -> Lua-C API -> Lua VM
-
-This sort of re-entrancy is explicitly not supported by LuaJIT compiler.
-For more info see (:tarantool-issue:`4427`).
-
-Vinyl
-~~~~~
-
-- Fix assertion fault due to triggered dump process during secondary
- index build (:tarantool-issue:`4810`).
-
-Misc
-~~~~
-
-- Fix crashes at attempts to use ``-e`` and ``-l`` command line options
- concatenated with their values, like this: ``-eprint(100)``
- (:tarantool-issue:`4775`).
-- Update ``libopenssl`` version to 1.1.1f since the previous one was
- EOLed (:tarantool-issue:`4830`).
-
-Building from sources
-~~~~~~~~~~~~~~~~~~~~~
-
-- Fix static build (``-DBUILD_STATIC=ON``) when ``libunwind`` depends
- on ``liblzma`` (:tarantool-issue:`4551`).
diff --git a/doc/release/1.10.7.rst b/doc/release/1.10.7.rst
deleted file mode 100644
index c250e132bc..0000000000
--- a/doc/release/1.10.7.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-Tarantool 1.10.7
-================
-
-Release: :tarantool-release:`1.10.7`
-
-Date: 2020-07-17 Tag: 1.10.7-1-gb93a33a
-
-Overview
---------
-
-1.10.7 is the next stable release of the 1.10.x series. The label
-“stable” means there are 1.10.x-based applications running in production
-for quite a while without known crashes, incorrect results or other
-showstopper bugs.
-
-This release resolves roughly 14 issues since 1.10.6. There may be bugs
-in less common areas. If you find any, feel free to report an issue at
-`GitHub `_.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol. Please
-upgrade using the box.schema.upgrade() procedure to unlock all the new
-features of the 1.10.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a bug in C module reloading (:tarantool-issue:`4945`).
-- Fixed races and corner cases in box (re)configuration (:tarantool-issue:`4231`).
-- Fixed check of index field map size which led to crash (:tarantool-issue:`5084`).
-- Fixed wrong mpsgpack extension type in an error message at decoding
- (:tarantool-issue:`5017`).
-
-Lua
-~~~
-
-- Fixed error while closing socket.tcp_server socket (:tarantool-issue:`4087`).
-
-LuaRocks
-~~~~~~~~
-
-- Don’t ruin rock name when freshly installing \*.all.rock with
- dependencies (:tarantool-issue:`4704`).
-
-Vinyl
-~~~~~
-
-- Fixed crash during compaction due to tuples with size exceeding
- vinyl_max_tuple_size setting (:tarantool-issue:`4864`).
-- Fixed crash during recovery of vinyl index due to the lack of file
- descriptors (:tarantool-issue:`4805`).
-- Fixed crash during executing upsert changing primary key in debug
- mode (:tarantool-issue:`5005`).
-- Fixed crash due to triggered dump process during secondary index
- creation (:tarantool-issue:`5042`).
-- Fixed crash/deadlock (depending on build type) during dump process
- scheduling and concurrent DDL operation (:tarantool-issue:`4821`).
-- Fixed crash during read of prepared but still not yet not committed
- statement (:tarantool-issue:`3395`).
-- Fixed squashing set and arithmetic upsert operations (:tarantool-issue:`5106`).
-- Create missing folders for vinyl spaces and indexes if needed to
- avoid confusing fails of tarantool started from backup (:tarantool-issue:`5090`).
-- Fixed crash during squash of many (more than 4000) upserts modifying
- the same key (:tarantool-issue:`4957`).
diff --git a/doc/release/1.10.8.rst b/doc/release/1.10.8.rst
deleted file mode 100644
index f72b5f9513..0000000000
--- a/doc/release/1.10.8.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-Tarantool 1.10.8
-================
-
-Release: :tarantool-release:`1.10.8`
-
-Date: 2020-10-22 Tag: 1.10.8-1-ge69e130
-
-Overview
---------
-
-1.10.8 is the next stable release of the 1.10.x series. The label
-“stable” means there are 1.10.x-based applications running in production
-for quite a while without known crashes, incorrect results or other
-showstopper bugs.
-
-This release resolves roughly 7 issues since the 1.10.7 version. There
-may be bugs in less common areas. If you find any, feel free to report
-an issue at `GitHub `_.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol. Please
-upgrade using the box.schema.upgrade() procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Module API
-~~~~~~~~~~
-
-- Exposed the box region, key_def and several other functions in order
- to implement external tuple.keydef and tuple.merger modules on top of
- them (:tarantool-issue:`5273`, :tarantool-issue:`5384`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed fibers switch-over to prevent JIT machinery misbehavior. Trace
- recording is aborted when fiber yields the execution. The yield
- occurring while the compiled code is being run (it’s likely a
- function with a yield underneath called via LuaJIT FFI) leads to the
- platform panic (:tarantool-issue:`1700`, :tarantool-issue:`4491`).
-- Fixed fibers switch-over to prevent implicit GC disabling. The yield
- occurring while user-defined \__gc metamethod is running leads to the
- platform panic.
-
-Lua
-~~~
-
-- Fixed unhandled Lua error that might lead to memory leaks and
- inconsistencies in ``:frommap()``,
- ``:compare()``, ``:select()``
- (:tarantool-issue:`5382`).
-
-LuaJIT
-~~~~~~
-
-- Fixed the error occurring on loading luajit-gdb.py with Python2
- (:tarantool-issue:`4828`).
-
-Misc
-~~~~
-
-- Fixed potential lag on boot up procedure when system’s password
- database is slow in access (:tarantool-issue:`5034`).
-
-.. _module-api-1:
-
-Module API
-~~~~~~~~~~
-
-- Get rid of typedef redefinitions for compatibility with C99
- (:tarantool-issue:`5313`).
diff --git a/doc/release/1.10.9.rst b/doc/release/1.10.9.rst
deleted file mode 100644
index ff91c5395d..0000000000
--- a/doc/release/1.10.9.rst
+++ /dev/null
@@ -1,97 +0,0 @@
-Tarantool 1.10.9
-================
-
-Release: :tarantool-release:`1.10.9`
-
-Date: 2020-12-30 Tag: 1.10.9-0-g720ffdd23
-
-Overview
---------
-
-1.10.9 is the next stable release in the
-:doc:`long-term support (LTS) version `
-1.10.x release series. The label “stable” means there are 1.10.x-based
-applications running in production for quite a while without known
-crashes, incorrect results or other showstopper bugs.
-
-This release introduces one improvement and resolves roughly 7 issues
-since the 1.10.8 version.
-
-Compatibility
--------------
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary
-data layout, client-server protocol and replication protocol. Please
-`upgrade `_
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 1.10.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- Deploy packages for Fedora 32 (:tarantool-issue:`4966`).
-- Deploy packages for Debian Bullseye (:tarantool-issue:`5638`).
-
-Misc
-~~~~
-
-- Don’t start an ‘example’ instance after installing Tarantool
- (:tarantool-issue:`4507`).
-
- Before this release the ``tarantool`` package for Debian and Ubuntu used to
- automatically enable and start an 'example' instance, which would
- listen on the TCP port ``3301``. Since this release the instance file
- is installed to ``/etc/tarantool/instances.available/example.lua``,
- but isn’t enabled by default and not started anymore. You can enable
- and start it with the following commands:
-
- .. code:: bash
-
- ln -s /etc/tarantool/instances.available/example.lua \
- /etc/tarantool/instances.enabled/example.lua
- systemctl start tarantool@example
-
- Existing configuration will not be updated automatically at package
- update. If you don’t the need example instance, you can stop and
- disable it with the following commands:
-
- .. code:: bash
-
- systemctl stop tarantool@example
- rm /etc/tarantool/instances.enabled/example.lua
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- ``fiber.cond:wait()`` now correctly throws an error when a fiber is
- cancelled, instead of ignoring the timeout and returning without any
- signs of an error (:tarantool-issue:`5013`).
-- Fixed a memory corruption issue, which was most visible on macOS, but
- could affect any system (:tarantool-issue:`5312`).
-- A dynamic module now gets correctly unloaded from memory in case of
- an attempt to load a non-existing function from it (:tarantool-issue:`5475`).
-- The fiber region (the box region) won’t be invalidated on a read-only
- transaction (:tarantool-issue:`5427`, :tarantool-issue:`5623`).
-
-LuaJIT
-~~~~~~
-
-- Dispatching ``__call`` metamethod no longer causes address clashing
- (:tarantool-issue:`4518`, (:tarantool-issue:`4649`).
-- Fixed a false positive panic when yielding in debug hook
- (:tarantool-issue:`5649`).
-
-Lua
-~~~
-
-- An attempt to use a ``net.box`` connection which is not established
- yet now results in a correctly reported error (:tarantool-issue:`4787`).
-- Fixed a hang which occurred when ``tarantool`` ran a user script with
- the ``-e`` option and this script exited with an error (like with
- ``tarantool -e 'assert(false)'``) (:tarantool-issue:`4983`).
diff --git a/doc/release/1.10.rst b/doc/release/1.10.rst
deleted file mode 100644
index 8e2775993d..0000000000
--- a/doc/release/1.10.rst
+++ /dev/null
@@ -1,448 +0,0 @@
---------------------------------------------------------------------------------
-Tarantool 1.10
---------------------------------------------------------------------------------
-
-Release: :tarantool-release:`1.10.0`
-
-.. _whats_new_110:
-
-.. _whats_new_1104:
-
-**Release 1.10.4**
-
-Release type: stable (lts). Release date: 2019-09-26. Tag: 1-10-4.
-
-Release: :tarantool-release:`1.10.4.`
-
-Overview
-
-1.10.4 is the next :ref:`stable (lts) ` release in the 1.10 series.
-The label 'stable' means we have had systems running in production without known crashes,
-bad results or other showstopper bugs for quite a while now.
-
-This release resolves about 50 issues since 1.10.3.
-
-Compatibility
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary data layout,
-client-server protocol and replication protocol.
-Please :ref:`upgrade ` using the ``box.schema.upgrade()``
-procedure to unlock all the new features of the 1.10.x series when migrating
-from 1.9 version.
-
-Functionality added or changed
-
-* (Engines) Improve dump start/stop logging. When initiating memory dump, print
- how much memory is going to be dumped, expected dump rate, ETA, and the recent
- write rate. Upon dump completion, print observed dump rate in addition to dump
- size and duration.
-* (Engines) Look up key in reader thread. If a key isn't found in the tuple cache,
- we fetch it from a run file. In this case disk read and page decompression is
- done by a reader thread, however key lookup in the fetched page is still
- performed by the TX thread. Since pages are immutable, this could as well
- be done by the reader thread, which would allow us to save some precious CPU
- cycles for TX
- (:tarantool-issue:`4257`).
-* (Core) Improve :ref:`box.stat.net `
- (:tarantool-issue:`4150`).
-* (Core) Add ``idle`` to downstream status in ``box.info``.
- When a relay sends a row it updates ``last_row_time`` value with the
- current time. When ``box.info()`` is called, ``idle`` is set to
- ``current_time`` - ``last_row_time``.
-* (Replication) Print corrupted rows on decoding error.
- Improve row printing to log. Print the header row by row, 16 bytes in a row,
- and format output to match ``xxd`` output:
-
- .. code-block:: bash
-
- [001] 2019-04-05 18:22:46.679 [11859] iproto V> Got a corrupted row:
- [001] 2019-04-05 18:22:46.679 [11859] iproto V> 00000000: A3 02 D6 5A E4 D9 E7 68 A1 53 8D 53 60 5F 20 3F
- [001] 2019-04-05 18:22:46.679 [11859] iproto V> 00000010: D8 E2 D6 E2 A3 02 D6 5A E4 D9 E7 68 A1 53 8D 53
-
-* (Lua) Add type of operation to space :ref:`trigger parameters `.
- For example, a trigger function may now look like this:
-
- .. code-block:: lua
-
- function before_replace_trig(old, new, space_name, op_type)
- if op_type == 'INSERT' then
- return old
- else
- return new
- end
- end
-
- (:tarantool-issue:`4099`).
-* (Lua) Add ``debug.sourcefile()`` and ``debug.sourcedir()`` helpers
- (and ``debug.__file__`` and ``debug.__dir__ shortcuts``) to determine
- the location of a current Lua source file.
- Part of (:tarantool-issue:`4193`).
-* (HTTP client) Add ``max_total_connections`` option in addition to
- ``max_connections`` to allow more fine-grained tuning of ``libcurl``
- connection cache. Don't restrict the total connections` with a constant value
- by default, but use ``libcurl``'s default, which scales the threshold according
- to easy handles count
- (:tarantool-issue:`3945`).
-
-Bugs fixed
-
-* (Vinyl) Fix assertion failure in `vy_tx_handle_deferred_delete`
- (:tarantool-issue:`4294`).
-* (Vinyl) Don't purge deleted runs from vylog on compaction.
- Cherry-picked from (:tarantool-issue:`4218`).
-* (Vinyl) Don't throttle DDL
- (:tarantool-issue:`4238`).
-* (Vinyl) Fix deferred DELETE statement lost on commit
- (:tarantool-issue:`4248`).
-* (Vinyl) Fix assertion while recovering dumped statement
- (:tarantool-issue:`4222`).
-* (Vinyl) Reset dump watermark after updating memory limit
- (:tarantool-issue:`3864`).
-* (Vinyl) Be pessimistic about write rate when setting dump watermark
- (:tarantool-issue:`4166`).
-* (Vinyl) Fix crash if space is dropped while space.get is reading from it
- (:tarantool-issue:`4109`).
-* (Vinyl) Fix crash during index build
- (:tarantool-issue:`4152`).
-* (Vinyl) Don't compress L1 runs
- (:tarantool-issue:`2389`).
-* (Vinyl) Account statements skipped on read.
-* (Vinyl) Take into account primary key lookup in latency accounting.
-* (Vinyl) Fix ``vy_range_update_compaction_priority`` hang.
-* (Vinyl) Free region on vylog commit instead of resetting it and clean up
- region after allocating surrogate statement.
-* (Vinyl) Increase even more the open file limit in ``systemd`` unit file.
-* (Vinyl) Increment min range size to 128MB
-* (Memtx) Cancel checkpoint thread at exit
- (:tarantool-issue:`4170`).
-* (Core) Fix crash for update with empty tuple
- (:tarantool-issue:`4041`).
-* (Core) Fix use-after-free in ``space_truncate``
- (:tarantool-issue:`4093`).
-* (Core) Fix error while altering index with sequence
- (:tarantool-issue:`4214`).
-* (Core) Detect a new invalid json path case
- (:tarantool-issue:`4419`).
-* (Core) Fix empty password authentication
- (:tarantool-issue:`4327`).
-* (Core) Fix ``txn::sub_stmt_begin`` array size.
-* (Core) Account ``index.pairs`` in ``box.stat.SELECT()``.
-* (Replication) Disallow bootstrap of read-only masters
- (:tarantool-issue:`4321`).
-* (Replication) Enter orphan mode on manual replication configuration change
- (:tarantool-issue:`4424`).
-* (Replication) Set ``last_row_time`` to ``now`` in ``relay_new`` and ``relay_start``.
- PR `4431 `_.
-* (Replication) Stop relay on subscribe error
- (:tarantool-issue:`4399`).
-* (Replication) Init ``coio`` watcher before join/subscribe
- (:tarantool-issue:`4110`).
-* (Replication) Allow to change instance id during join
- (:tarantool-issue:`4107`).
-* (Replication) Fix garbage collection logic.
-* (Replication) Revert packet boundary checking for iproto.
-* (Replication) Do not abort replication on ER_UNKNOWN_REPLICA.
-* (Replication) Reduce effects of input buffer fragmentation on large ``cfg.readahead``.
-* (Replication) Fix upgrade from 1.7 (it doesn't recognize IPROTO_VOTE request type).
-* (Replication) Fix memory leak in call / eval in the case when a transaction
- is not committed
- (:tarantool-issue:`4388`).
-* (Lua) Fix ``fio.mktree()`` error reporting
- (:tarantool-issue:`4044`).
-* (Lua) Fix segfault on ``ffi.C_say()`` without filename
- (:tarantool-issue:`4336`).
-* (Lua) Fix segfault on ``json.encode()`` on a recursive table
- (:tarantool-issue:`4366`).
-* (Lua) Fix ``pwd.getpwall()`` and ``pwd.getgrall()`` hang on CentOS 6
- and FreeBSD 12
- (:tarantool-issue:`4447`,
- :tarantool-issue:`4428`).
-* (Lua) Fix a segfault during initialization of a cipher from ``crypto`` module
- (:tarantool-issue:`4223`).
-* (HTTP client) Reduce stack consumption during waiting for a DNS resolving result
- (:tarantool-issue:`4179`).
-* (HTTP client) Increase max outgoing header size to 8 KiB
- (:tarantool-issue:`3959`).
-* (HTTP client) Verify "headers" option stronger
- (:tarantool-issue:`4281`,
- :tarantool-issue:`3679`).
-* (HTTP client) Use bundled ``libcurl`` rather than system-wide by default
- (:tarantool-issue:`4318`,
- :tarantool-issue:`4180`,
- :tarantool-issue:`4288`,
- :tarantool-issue:`4389`,
- :tarantool-issue:`4397`).
-* (HTTP client) This closes several known problems that were fixed in recent
- ``libcurl`` versions, including segfaults, hangs, memory leaks and performance
- problems.
-* (LuaJIT) Fix overflow of snapshot map offset
- Part of (:tarantool-issue:`4171`).
-* (LuaJIT) Fix rechaining of pseudo-resurrected string keys
- Part of (:tarantool-issue:`4171`).
-* (LuaJIT) Fix fold machinery misbehaves
- (:tarantool-issue:`4376`).
-* (LuaJIT) Fix for `debug.getinfo(1,'>S')`
- (:tarantool-issue:`3833`).
-* (LuaJIT) Fix `string.find` recording
- (:tarantool-issue:`4476`).
-* (LuaJIT) Fixed a segfault when unsinking 64-bit pointers.
-* (Misc) Increase even more the open file limit in ``systemd`` unit file.
-* (Misc) Raise error in ``tarantoolctl`` when ``box.cfg()`` isn't called
- (:tarantool-issue:`3953`).
-* (Misc) Support ``systemd``’s NOTIFY_SOCKET on OS X
- (:tarantool-issue:`4436`).
-* (Misc) Fix ``coio_getaddrinfo()`` when 0 timeout is passed
- (affects ``netbox``’s ``connect_timeout``)
- (:tarantool-issue:`4209`).
-* (Misc) Fix ``coio_do_copyfile()`` to perform truncate of destination
- (affects ``fio.copyfile()``)
- (:tarantool-issue:`4181`).
-* (Misc) Make hints in ``coio_getaddrinfo()`` optional.
-* (Misc) Validate ``msgpack.decode()`` cdata size argument
- (:tarantool-issue:`4224`).
-* (Misc) Fix linking with static ``openssl`` library
- (:tarantool-issue:`4437`).
-
-Deprecations
-
-* (Core) Deprecate ``rows_per_wal`` in favor of ``wal_max_size``.
- Part of (:tarantool-issue:`3762`).
-
-.. _whats_new_1103:
-
-**Release 1.10.3**
-
-Release type: stable (lts). Release date: 2019-04-01. Tag: 1-10-3.
-
-Release: :tarantool-release:`1.10.3.`
-
-Overview
-
-1.10.3 is the next :ref:`stable (lts) ` release in the 1.10 series.
-The label 'stable' means we have had systems running in production without known crashes,
-bad results or other showstopper bugs for quite a while now.
-
-This release resolves 69 issues since 1.10.2.
-
-Compatibility
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary data layout, client-server protocol and replication protocol.
-Please :ref:`upgrade ` using the ``box.schema.upgrade()`` procedure to unlock all the new features of the 1.10.x series when migrating from 1.9 version.
-
-Functionality added or changed
-
-* (Engines) Randomize vinyl index compaction
- (:tarantool-issue:`3944`).
-* (Engines) Throttle tx thread if compaction doesn't keep up with dumps
- (:tarantool-issue:`3721`).
-* (Engines) Do not apply run_count_per_level to the last level
- (:tarantool-issue:`3657`).
-* (Server) Report the number of active iproto connections
- (:tarantool-issue:`3905`).
-* (Replication) Never keep a dead replica around if running out of disk space
- (:tarantool-issue:`3397`).
-* (Replication) Report join progress to the replica log
- (:tarantool-issue:`3165`).
-* (Lua) Expose snapshot status in box.info.gc()
- (:tarantool-issue:`3935`).
-* (Lua) Show names of Lua functions in backtraces in fiber.info()
- (:tarantool-issue:`3538`).
-* (Lua) Check if transaction opened
- (:tarantool-issue:`3518`).
-
-Bugs fixed
-
-* (Engines) Tarantool crashes if DML races with DDL
- (:tarantool-issue:`3420`).
-* (Engines) Recovery error if DDL is aborted
- (:tarantool-issue:`4066`).
-* (Engines) Tarantool could commit in the read-only mode
- (:tarantool-issue:`4016`).
-* (Engines) Vinyl iterator crashes if used throughout DDL
- (:tarantool-issue:`4000`).
-* (Engines) Vinyl doesn't exit until dump/compaction is complete
- (:tarantool-issue:`3949`).
-* (Engines) After re-creating secondary index no data is visible
- (:tarantool-issue:`3903`).
-* (Engines) box.info.memory().tx underflow
- (:tarantool-issue:`3897`).
-* (Engines) Vinyl stalls on intensive random insertion
- (:tarantool-issue:`3603`).
-* (Server) Newer version of libcurl explodes fiber stack
- (:tarantool-issue:`3569`).
-* (Server) SIGHUP crashes tarantool
- (:tarantool-issue:`4063`).
-* (Server) checkpoint_daemon.lua:49: bad argument #2 to 'format'
- (:tarantool-issue:`4030`).
-* (Server) fiber:name() show only part of name
- (:tarantool-issue:`4011`).
-* (Server) Second hot standby switch may fail
- (:tarantool-issue:`3967`).
-* (Server) Updating box.cfg.readahead doesn't affect existing connections
- (:tarantool-issue:`3958`).
-* (Server) fiber.join() blocks in 'suspended' if fiber has cancelled
- (:tarantool-issue:`3948`).
-* (Server) Tarantool can be crashed by sending gibberish to a binary socket
- (:tarantool-issue:`3900`).
-* (Server) Stored procedure to produce push-messages never breaks on client disconnect
- (:tarantool-issue:`3559`).
-* (Server) Tarantool crashed in lj_vm_return
- (:tarantool-issue:`3840`).
-* (Server) Fiber executing box.cfg() may process messages from iproto
- (:tarantool-issue:`3779`).
-* (Server) Possible regression on nosqlbench
- (:tarantool-issue:`3747`).
-* (Server) Assertion after improper index creation
- (:tarantool-issue:`3744`).
-* (Server) Tarantool crashes on vshard startup (lj_gc_step)
- (:tarantool-issue:`3725`).
-* (Server) Do not restart replication on box.cfg if the configuration didn't change
- (:tarantool-issue:`3711`).
-* (Replication) Applier times out too fast when reading large tuples
- (:tarantool-issue:`4042`).
-* (Replication) Vinyl replica join fails
- (:tarantool-issue:`3968`).
-* (Replication) Error during replication
- (:tarantool-issue:`3910`).
-* (Replication) Downstream status doesn't show up in replication.info unless the channel is broken
- (:tarantool-issue:`3904`).
-* (Replication) replication fails: tx checksum mismatch
- (:tarantool-issue:`3883`).
-* (Replication) Rebootstrap crashes if master has replica's rows
- (:tarantool-issue:`3740`).
-* (Replication) After restart tuples revert back to their old state which was before replica sync
- (:tarantool-issue:`3722`).
-* (Replication) Add vclock for safer hot standby switch
- (:tarantool-issue:`3002`).
-* (Replication) Master row is skipped forever in case of wal write failure
- (:tarantool-issue:`2283`).
-* (Lua) space:frommap():tomap() conversion fail
- (:tarantool-issue:`4045`).
-* (Lua) Non-informative message when trying to read a negative count of bytes from socket
- (:tarantool-issue:`3979`).
-* (Lua) space:frommap raise "tuple field does not match..." even for nullable field
- (:tarantool-issue:`3883`).
-* (Lua) Tarantool crashes on net.box.call after some uptime with vshard internal fiber
- (:tarantool-issue:`3751`).
-* (Lua) Heap use after free in lbox_error
- (:tarantool-issue:`1955`).
-* (Misc) http.client doesn't honour 'connection: keep-alive'
- (:tarantool-issue:`3955`).
-* (Misc) net.box wait_connected is broken
- (:tarantool-issue:`3856`).
-* (Misc) Mac build fails on Mojave
- (:tarantool-issue:`3797`).
-* (Misc) FreeBSD build error: no SSL support
- (:tarantool-issue:`3750`).
-* (Misc) 'http.client' sets invalid (?) reason
- (:tarantool-issue:`3681`).
-* (Misc) Http client silently modifies headers when value is not a "string" or a "number"
- (:tarantool-issue:`3679`).
-* (Misc) yaml.encode uses multiline format for 'false' and 'true'
- (:tarantool-issue:`3662`).
-* (Misc) yaml.encode encodes 'null' incorrectly
- (:tarantool-issue:`3583`).
-* (Misc) Error object message is empty
- (:tarantool-issue:`3604`).
-* (Misc) Log can be flooded by warning messages
- (:tarantool-issue:`2218`).
-
-Deprecations
-
-* Deprecate ``console=true`` option for :ref:`net.box.new() `.
-
-.. _whats_new_1102:
-
-**Release 1.10.2**
-
-Release type: stable (lts). Release date: 2018-10-13. Tag: 1-10-2.
-
-Release: :tarantool-release:`1.10.2.`
-
-This is the first :ref:`stable (lts) ` release in the 1.10
-series.
-Also, Tarantool 1.10.2 is a major release that deprecates Tarantool 1.9.2.
-It resolves 95 issues since 1.9.2.
-
-Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary data
-layout, client-server protocol and replication protocol.
-You can :ref:`upgrade ` using the ``box.schema.upgrade()``
-procedure.
-
-The goal of this release is to significantly increase ``vinyl`` stability and
-introduce automatic rebootstrap of a Tarantool replica set.
-
-Functionality added or changed:
-
- * (Engines) support ALTER for non-empty vinyl spaces
- (:tarantool-issue:`1653`).
- * (Engines) tuples stored in the vinyl cache are not shared among the indexes
- of the same space
- (:tarantool-issue:`3478`).
- * (Engines) keep a stack of UPSERTS in ``vy_read_iterator``
- (:tarantool-issue:`1833`).
- * (Engines) ``box.ctl.reset_stat()``, a function to reset vinyl statistics
- (:tarantool-issue:`3198`).
-
- * (Server) :ref:`configurable syslog destination `
- (:tarantool-issue:`3487`).
- * (Server) allow different nullability in indexes and format
- (:tarantool-issue:`3430`).
- * (Server) allow to
- :ref:`back up any checkpoint `,
- not just the last one
- (:tarantool-issue:`3410`).
- * (Server) a way to detect that a Tarantool process was
- started / restarted by ``tarantoolctl``
- (:ref:`TARANTOOLCTL and TARANTOOL_RESTARTED `
- env vars)
- (:tarantool-issue:`3384`,
- :tarantool-issue:`3215`).
- * (Server) :ref:`net_msg_max `
- configuration parameter to restrict the number of allocated fibers
- (:tarantool-issue:`3320`).
-
- * (Replication)
- display the connection status if the downstream gets disconnected from
- the upstream
- (:ref:`box.info.replication.downstream.status `
- ``= disconnected``)
- (:tarantool-issue:`3365`).
- * (Replication) :ref:`replica-local spaces `
- (:tarantool-issue:`3443`)
- * (Replication)
- :ref:`replication_skip_conflict `,
- a new option in ``box.cfg{}`` to skip conflicting rows in replication
- (:tarantool-issue:`3270`)
- * (Replication)
- remove old snapshots which are not needed by replicas
- (:tarantool-issue:`3444`)
- * (Replication)
- log records which tried to commit twice
- (:tarantool-issue:`3105`)
-
- * (Lua) new function :ref:`fiber.join() `
- (:tarantool-issue:`1397`).
- * (Lua) new option ``names_only`` to :ref:`tuple:tomap() `
- (:tarantool-issue:`3280`).
- * (Lua) support custom rock servers (``server`` and ``only-server``
- options for :ref:`tarantoolctl rocks `
- command)
- (:tarantool-issue:`2640`).
-
- * (Lua) expose ``on_commit``/``on_rollback`` triggers to Lua
- (:tarantool-issue:`857`).
- * (Lua) new function :ref:`box.is_in_txn() `
- to check if a transaction is open
- (:tarantool-issue:`3518`).
- * (Lua) tuple field access via a json path
- (by :ref:`number `,
- :ref:`name `, and
- :ref:`path `);
- (:tarantool-issue:`1285`).
- * (Lua) new function :ref:`space:frommap() `
- (:tarantool-issue:`3282`).
- * (Lua) new module :ref:`utf8 ` that implements libicu's bindings
- for use in Lua
- (:tarantool-issue:`3290`,
- :tarantool-issue:`3385`).
diff --git a/doc/release/1.6.rst b/doc/release/1.6.rst
deleted file mode 100644
index f5758f57ff..0000000000
--- a/doc/release/1.6.rst
+++ /dev/null
@@ -1,299 +0,0 @@
--------------------------------------------------------------------------------
-Tarantool 1.6
--------------------------------------------------------------------------------
-
-Release: :tarantool-release:`1.6.0`
-
-.. _whats_new_16:
-
-
-.. _whats_new_169:
-
-**Release 1.6.9**
-
-Release type: maintenance. Release date: 2016-09-27. Release tag: 1.6.9-4-gcc9ddd7.
-Release: :tarantool-release:`1.6.9`
-
-Since February 15, 2017, due to Tarantool issue (:tarantool-issue:`2040`)
-there no longer is a storage engine named `sophia`.
-It will be superseded in version 1.7 by the `vinyl` storage engine.
-
-Incompatible changes:
-
- * Support for SHA-0 (``digest.sha()``) was removed due to OpenSSL upgrade.
- * Tarantool binary now dynamically links with libssl.so during compile time
- instead of loading it at the run time.
- * Fedora 22 packages were deprecated (EOL).
-
-Functionality added or changed:
-
- * Tab-based autocompletion in the interactive console
- (:tarantool-issue:`86`).
- * LUA_PATH and LUA_CPATH environment variables taken into account,
- like in PUC-RIO Lua (:tarantool-issue:`1428`).
- * Search for ``.dylib`` as well as for ``.so`` libraries in OS X
- (:tarantool-issue:`810`).
- * A new ``box.cfg { read_only = true }`` option to emulate master-slave
- behavior (:tarantool-issue:`246`).
- * ``if_not_exists = true`` option added to ``box.schema.user.grant``
- (:tarantool-issue:`1683`).
- * ``clock_realtime()``/``monotonic()`` functions added to the public C API
- (:tarantool-issue:`1455`).
- * ``space:count(key, opts)`` introduced as an alias for
- ``space.index.primary:count(key, opts)``
- (:tarantool-issue:`1391`).
- * Upgrade script for 1.6.4 -> 1.6.8 -> 1.6.9
- (:tarantool-issue:`1281`).
- * Support for OpenSSL 1.1
- (:tarantool-issue:`1722`).
-
-New rocks and packages:
-
- * `curl `_ - non-blocking bindings for libcurl
- * `prometheus `_ - Prometheus metric collector for Tarantool
- * `gis `_ - full-featured geospatial extension for Tarantool.
- * `mqtt `_ - MQTT protocol client for Tarantool
- * `luaossl `_ - the most comprehensive OpenSSL module in the Lua universe
-
-.. _whats_new_168:
-
-**Release 1.6.8**
-
-Release type: maintenance. Release date: 2016-02-25. Release tag: 1.6.8-525-ga571ac0.
-Release: :tarantool-release:`1.6.8`
-
-Incompatible changes:
-
- * RPM packages for CentOS 7 / RHEL 7 and Fedora 22+ now use native systemd
- configuration without legacy sysvinit shell scripts. Systemd provides its own
- facilities for multi-instance management. To upgrade, perform the
- following steps:
-
- 1. Ensure that ``INSTANCENAME.lua`` file is present in ``/etc/tarantool/instances.available``.
- 2. Stop INSTANCENAME using ``tarantoolctl stop INSTANCENAME``.
- 3. Start INSTANCENAME using ``systemctl start tarantool@INSTANCENAME``.
- 4. Enable INSTANCENAME during system boot using ``systemctl enable tarantool@INTANCENAME``.
-
- ``/etc/tarantool/instance.enabled`` directory is now deprecated for systemd-enabled platforms.
-
- See :ref:`the administration chapter ` for additional information.
-
- * Sophia was upgraded to v2.1 to fix upsert, memory corruption and other bugs.
- Sophia v2.1 doesn't support old v1.1 data format. Please use Tarantool
- replication to upgrade
- (:tarantool-issue:`1222`).
- * Ubuntu Vivid, Fedora 20, Fedora 21 were deprecated due to EOL.
- * i686 packages were deprecated. Please use our RPM and DEB specs to build
- these on your own infrastructure.
- * Please update your ``yum.repos.d`` and/or apt ``sources.list.d`` according to
- instructions at http://tarantool.org/download.html
-
-Functionality added or changed:
-
- * Tarantool 1.6.8 fully supports ARMv7 and ARMv8 (aarch64) processors.
- Now it is possible to use Tarantool on a wide range of consumer devices,
- starting from popular Raspberry PI 2 to coin-size embedded boards and
- no-name mini-micro-nano-PCs
- (:tarantool-issue:`1153`).
- (Also qemu works well, but we don't have real hardware to check.)
- * Tuple comparator functions were optimized, providing up to 30% performance
- boost when an index key consists of 2, 3 or more parts
- (:tarantool-issue:`969`).
- * Tuple allocator changes give another 15% performance improvement
- (:tarantool-issue:`1298`).
- * Replication relay performance was improved by reducing the amount of data
- directory re-scans
- (:tarantool-issue:`1150`).
- * A random delay was introduced into snapshot daemon, reducing the chance
- that multiple instances take a snapshot at the same time
- (:tarantool-issue:`732`).
- * Sophia storage engine was upgraded to v2.1:
-
- * serializable Snapshot Isolation (SSI),
- * RAM storage mode,
- * anti-cache storage mode,
- * persistent caching storage mode,
- * implemented AMQ Filter,
- * LRU mode,
- * separate compression for hot and cold data,
- * snapshot implementation for Faster Recovery,
- * upsert reorganizations and fixes,
- * new performance metrics.
-
- Please note "Incompatible changes" above.
-
- * Allow to remove servers with non-zero LSN from ``_cluster`` space
- (:tarantool-issue:`1219`).
- * ``net.box`` now automatically reloads space and index definitions
- (:tarantool-issue:`1183`).
- * The maximal number of indexes in space was increased to 128
- (:tarantool-issue:`1311`).
- * New native ``systemd`` configuration with support of instance management
- and daemon supervision (CentOS 7 and Fedora 22+ only).
- Please note "Incompatible changes" above
- (:tarantool-issue:`1264`).
- * Tarantool package was accepted to the official Fedora repositories
- (https://apps.fedoraproject.org/packages/tarantool).
- * Tarantool brew formula (OS X) was accepted to the official
- Homebrew repository (https://formulae.brew.sh/formula/tarantool).
- * Clang compiler support was added on FreeBSD.
- (:tarantool-issue:`786`).
- * Support for musl libc, used by Alpine Linux and Docker images, was added
- (:tarantool-issue:`1249`).
- * Added support for GCC 6.0.
- * Ubuntu Wily, Xenial and Fedora 22, 23 and 24 are now supported
- distributions for which we build official packages.
- * box.info.cluster.uuid can be used to retrieve cluster UUID
- (:tarantool-issue:`1117`).
- * Numerous improvements in the documentation, added documentation
- for ``syslog``, ``clock``, ``fiber.storage`` packages, updated
- the built-in tutorial.
-
-New rocks and packages:
-
- * Tarantool switched to a new Docker-based cloud build infrastructure
- The new buildbot significantly decreases commit-to-package time.
- The official repositories at http://tarantool.org now
- contain the latest version of the server, rocks and connectors.
- See http://github.com/tarantool/build
- * The repositories at http://tarantool.org/download.html were moved to
- http://packagecloud.io cloud hosting (backed by Amazon AWS).
- Thanks to packagecloud.io for their support of open source!
- * ``memcached`` - memcached text and binary protocol implementation for Tarantool.
- Turns Tarantool into a persistent memcached with master-master replication.
- See https://github.com/tarantool/memcached
- * ``migrate`` - a Tarantool rock for migration from Tarantool 1.5 to 1.6.
- See https://github.com/bigbes/migrate
- * ``cqueues`` - a Lua asynchronous networking, threading, and notification
- framework (contributed by @daurnimator).
- PR `1204 `_.
-
-.. _whats_new_167:
-
-**Release 1.6.7**
-
-Release type: maintenance. Release date: 2015-11-17.
-Release: :tarantool-release:`1.6.7`
-Incompatible changes:
-
- * The syntax of ``upsert`` command has been changed
- and an extra ``key`` argument was removed from it. The primary
- key for look up is now always taken from the tuple, which is the
- second argument of upsert. ``upsert()`` was added fairly late at
- a release cycle and the design had an obvious bug which we had
- to fix. Sorry for this.
- * ``fiber.channel.broadcast()`` was removed since it wasn't used by
- anyone and didn't work properly.
- * tarantoolctl ``reload`` command renamed to ``eval``.
-
-Functionality added or changed:
-
- * ``logger`` option now accepts a syntax for syslog output. Use uri-style
- syntax for file, pipe or syslog log destination.
- * ``replication_source`` now accepts an array of URIs,
- so each replica can have up to 30 peers.
- * RTREE index now accept two types of ``distance`` functions:
- ``euclid`` and ``manhattan``.
- * ``fio.abspath()`` - a new function in ``fio`` rock to convert
- a relative path to absolute.
- * The process title now can be set with an on-board ``title`` rock.
- * This release uses LuaJIT 2.1.
-
-New rocks:
-
- * ``memcached`` - makes Tarantool understand Memcached binary protocol.
- Text protocol support is in progress and will be added to the rock
- itself, without changes to the server core.
-
-.. _whats_new_166:
-
-**Release 1.6.6**
-
-Release type: maintenance. Release date: 2015-08-28.
-Release: :tarantool-release:`1.6.6`
-
-Tarantool 1.6 is no longer getting major new features,
-although it will be maintained.
-The developers are concentrating on Tarantool version 1.9.
-
-Incompatible changes:
-
- * A new schema of ``_index`` system space which accommodates
- multi-dimensional RTREE indexes. Tarantool 1.6.6 works fine
- with an old snapshot and system spaces, but you will not
- be able to start Tarantool 1.6.5 with a data directory
- created by Tarantool 1.6.6, neither will you be able
- to query Tarantool 1.6.6 schema with 1.6.5 net.box.
- * ``box.info.snapshot_pid`` is renamed to ``box.info.snapshot_in_progress``
-
-Functionality added or changed:
-
- * Threaded architecture for network. Network I/O has finally
- been moved to a separate thread, increasing single instance
- performance by up to 50%.
- * Threaded architecture for checkpointing. Tarantool no longer
- forks to create a snapshot, but uses a separate thread,
- accessing data via a consistent read view.
- This eliminates all known latency spikes caused by
- snapshotting.
- * Stored procedures in C/C++. Stored procedures in C/C++
- provide speed (3-4 times, compared to a Lua version in
- our measurements), as well as unlimited extensibility
- power. Since C/C++ procedures run in the same memory
- space as the database, they are also an easy tool
- to corrupt database memory.
- See :ref:`The C API description `.
- * Multidimensional RTREE index. RTREE index type
- now support a large (up to 32) number of dimensions.
- RTREE data structure has been optimized to actually use
- `R\*-TREE `_.
- We're working on further improvements of the index,
- in particular, configurable distance function.
- See https://github.com/tarantool/tarantool/wiki/R-tree-index-quick-start-and-usage
- * Sophia 2.1.1, with support of compression and multipart
- primary keys.
- See https://groups.google.com/forum/#!topic/sophia-database/GfcbEC7ksRg
- * New ``upsert`` command available in the binary protocol
- and in stored functions. The key advantage of upsert
- is that it's much faster with write-optimized storage
- (sophia storage engine), but some caveats exists as well.
- See (:tarantool-issue:`905`)
- for details. Even though upsert performance advantage is most
- prominent with sophia engine, it works with all storage engines.
- * Better memory diagnostics information for fibers, tuple and
- index arena. Try a new command ``box.slab.stats()``, for
- detailed information about tuple/index slabs, ``fiber.info()`` now
- displays information about memory used by the fiber.
- * Update and delete now work using a secondary index, if the
- index is unique.
- * Authentication triggers. Set ``box.session.on_auth`` triggers
- to catch authentication events. Trigger API is improved
- to display all defined triggers, easily remove old triggers.
- * Manifold performance improvements of ``net.box`` built-in package.
- * Performance optimizations of BITSET index.
- * ``panic_on_wal_error`` is a dynamic configuration option now.
- * iproto ``sync`` field is available in Lua as ``session.sync()``.
- * ``box.once()`` - a new method to invoke code once in an
- instance and replica set lifetime. Use ``once()`` to set
- up spaces and uses, as well as do schema upgrade in
- production.
- * ``box.error.last()`` to return the last error in a session.
-
-New rocks:
-
- * ``jit.*``, ``jit.dump``, ``jit.util``, ``jit.vmdef`` modules of LuaJIT 2.0
- are now available as built-ins.
- See http://luajit.org/ext_jit.html
- * ``strict`` built-in package, banning use of undeclared variables in
- Lua. Strict mode is on when Tarantool is compiled with debug.
- Turn on/off with ``require('strict').on()``/``require('strict').off()``.
- * ``pg`` and ``mysql`` rocks, available at http://rocks.tarantool.org -
- working with MySQL and PostgreSQL from Tarantool.
- * ``gperftools`` rock, available at http://rocks.tarantool.org -
- getting performance data using Google's gperf from Tarantool.
- * ``csv`` built-in rock, to parse and load CSV (comma-separated
- values) data.
-
-New supported platforms:
-
-* Fedora 22, Ubuntu Vivid
diff --git a/doc/release/1.7.rst b/doc/release/1.7.rst
deleted file mode 100644
index 292ff57e59..0000000000
--- a/doc/release/1.7.rst
+++ /dev/null
@@ -1,708 +0,0 @@
---------------------------------------------------------------------------------
-Tarantool 1.7
---------------------------------------------------------------------------------
-
-Release: :tarantool-release:`1.7.0`
-
-.. _whats_new_17:
-
-.. _whats_new_176:
-
-**Release 1.7.6**
-
-Release type: stable. Release date: 2017-11-07. Tag: 1.7.6-0-g7b2945d6c.
-Release: https://groups.google.com/forum/#!topic/tarantool/hzc7O2YDZUc
-or :tarantool-release:`1.7.6.`
-
-This is the next stable release in the 1.7 series.
-It resolves more than 75 issues since 1.7.5.
-
-What's new in Tarantool 1.7.6?
-
- * In addition to :ref:`rollback ` of a transaction, there is now
- rollback to a defined point within a transaction -- :ref:`savepoint ` support.
- * There is a new object type: :ref:`sequences `.
- The older option, :ref:`auto-increment `, will be deprecated.
- * String indexes can have :ref:`collations `.
-
-New options are available for:
-
- * :ref:`net_box ` (timeouts),
- * :ref:`string ` functions,
- * space :ref:`formats ` (user-defined field names and types),
- * :ref:`base64 ` (``urlsafe`` option), and
- * index :ref:`creation `
- (collation, :ref:`is-nullable `, field names).
-
-Incompatible changes:
-
- * Layout of ``box.space._index`` has been extended to support
- :ref:`is_nullable `
- and :ref:`collation ` features.
- All new indexes created on columns with ``is_nullable`` or ``collation``
- properties will have the new definition format.
- Please update your client libraries if you plan to use these new features
- (:tarantool-issue:`2802`).
- * :ref:`fiber_name() ` now raises an exception instead of truncating long fiber names.
- We found that some Lua modules such as `expirationd `_ use ``fiber.name()``
- as a key to identify background tasks. If a name is truncated, this fact was
- silently missed. The new behavior allows to detect bugs caused by ``fiber.name()``
- truncation. Please use ``fiber.name(name, { truncate = true })`` to emulate
- the old behavior
- (:tarantool-issue:`2622`).
- * :ref:`space:format() ` is now validated on DML operations.
- Previously ``space:format()`` was only used by client libraries, but starting
- from Tarantool 1.7.6, field types in ``space:format()`` are validated on the
- server side on every DML operation, and field names can be used in indexes
- and Lua code. If you used ``space:format()`` in a non-standard way,
- please update layout and type names according to the official documentation for
- space formats.
-
-Functionality added or changed:
-
- * Hybrid schema-less + schemaful data model.
- Earlier Tarantool versions allowed to store arbitrary MessagePack documents in spaces.
- Starting from Tarantool 1.7.6, you can use
- :ref:`space:format() ` to define schema restrictions and constraints
- for tuples in spaces. Defined field types are automatically validated on every DML operation,
- and defined field names can be used instead of field numbers in Lua code.
- A new function :ref:`tuple:tomap() ` was added to convert a tuple into a key-value Lua dictionary.
- * Collation and Unicode support.
- By default, when Tarantool compares strings, it takes into consideration only the numeric
- value of each byte in the string. To allow the ordering that you see in phone books and dictionaries,
- Tarantool 1.7.6 introduces support for collations based on the
- `Default Unicode Collation Element Table (DUCET) `_
- and the rules described in
- `Unicode® Technical Standard #10 Unicode Collation Algorithm (UTS #10 UCA) `_
- See :ref:`collations `.
- * NULL values in unique and non-unique indexes.
- By default, all fields in Tarantool are "NOT NULL".
- Starting from Tarantool 1.7.6, you can use
- ``is_nullable`` option in :ref:`space:format() `
- or :ref:`inside an index part definition `
- to allow storing NULL in indexes.
- Tarantool partially implements
- `three-valued logic `_
- from the SQL standard and allows storing multiple NULL values in unique indexes
- (:tarantool-issue:`1557`).
- * Sequences and a new implementation of :ref:`auto_increment() `.
- Tarantool 1.7.6 introduces new
- :ref:`sequence number generators ` (like CREATE SEQUENCE in SQL).
- This feature is used to implement new persistent auto increment in spaces
- (:tarantool-issue:`389`).
- * Vinyl: introduced gap locks in Vinyl transaction manager.
- The new locking mechanism in Vinyl TX manager reduces the number of conflicts in transactions
- (:tarantool-issue:`2671`).
- * net.box: :ref:`on_connect `
- and :ref:`on_disconnect ` triggers
- (:tarantool-issue:`2858`).
- * Structured logging in :ref:`JSON format `
- (:tarantool-issue:`2795`).
- * (Lua) Lua: :ref:`string.strip() `
- (:tarantool-issue:`2785`).
- * (Lua) added :ref:`base64_urlsafe_encode() ` to ``digest`` module
- (:tarantool-issue:`2777`).
- * Log conflicted keys in master-master replication
- (:tarantool-issue:`2779`).
- * Allow to disable backtrace in :ref:`fiber.info() `
- (:tarantool-issue:`2878`).
- * Implemented ``tarantoolctl rocks make *.spec``
- (:tarantool-issue:`2846`).
- * Extended the default loader to look for ``.rocks`` in the parent dir hierarchy
- (:tarantool-issue:`2676`).
- * ``SOL_TCP`` options support in :ref:`socket:setsockopt() `
- (:tarantool-issue:`598`).
- * Partial emulation of LuaSocket on top of Tarantool Socket
- (:tarantool-issue:`2727`).
-
-Developer tools:
-
- * Integration with IntelliJ IDEA with debugging support.
- Now you can use IntelliJ IDEA as an IDE to develop and debug Lua applications for Tarantool.
- See :ref:`Using IDE `.
- * Integration with `MobDebug `_ remote Lua debugger
- (:tarantool-issue:`2728`).
- * Configured ``/usr/bin/tarantool`` as an alternative Lua interpreter on Debian/Ubuntu
- (:tarantool-issue:`2730`).
-
-New rocks:
-
- * `smtp.client `_ - support SMTP via ``libcurl``.
-
-.. _whats_new_175:
-
-**Release 1.7.5**
-
-Release type: stable. Release date: 2017-08-22. Tag: 1.7.5.
-Release: :doc-issue:`289`
-or :tarantool-release:`1.7.5.`
-
-This is a stable release in the 1.7 series.
-This release resolves more than 160 issues since 1.7.4.
-
-Functionality added or changed:
-
- * (Vinyl) a new :ref:`force_recovery `
- mode to recover broken disk files.
- Use ``box.cfg{force_recovery=true}`` to recover corrupted data files
- after hardware issues or power outages
- (:tarantool-issue:`2253`).
- * (Vinyl) index options can be changed on the fly without rebuild.
- Now :ref:`page_size `,
- :ref:`run_size_ratio `,
- :ref:`run_count_per_level `
- and :ref:`bloom_fpr `
- index options can be dynamically changed via :ref:`index:alter() `.
- The changes take effect in newly created data files only
- (:tarantool-issue:`2109`).
- * (Vinyl) improve :ref:`box.info.vinyl() ` and ``index:info()`` output
- (:tarantool-issue:`1662`).
- * (Vinyl) introduce :ref:`box.cfg.vinyl_timeout ` option to control quota throttling
- (:tarantool-issue:`2014`).
- * Memtx: stable :ref:`index:pairs() ` iterators for the TREE index.
- TREE iterators are automatically restored to a proper position after index's modifications
- (:tarantool-issue:`1796`).
- * (Memtx) :ref:`predictable order ` for non-unique TREE indexes.
- Non-unique TREE indexes preserve the sort order for duplicate entries
- (:tarantool-issue:`2476`).
- * (Memtx+Vinyl) dynamic configuration of :ref:`max tuple size `.
- Now ``box.cfg.memtx_max_tuple_size`` and ``box.cfg.vinyl_max_tuple_size``
- configuration options can be changed on the fly without need to restart the server
- (:tarantool-issue:`2667`).
- * (Memtx+Vinyl) new implementation.
- Space :ref:`truncation ` doesn't cause re-creation of all indexes any more
- (:tarantool-issue:`618`).
- * Extended the :ref:`maximal length ` of all identifiers from 32 to 65k characters.
- Space, user and function names are not limited by 32 characters anymore
- (:tarantool-issue:`944`).
- * :ref:`Heartbeat ` messages for replication.
- Replication client now sends the selective acknowledgments for processed
- records and automatically re-establish stalled connections.
- This feature also changes :ref:`box.info.replication[replica_id].vclock `.
- to display committed vclock of remote replica
- (:tarantool-issue:`2484`).
- * Keep track of remote replicas during WAL maintenance.
- Replication master now automatically preserves xlogs needed for remote replicas
- (:tarantool-issue:`748`).
- * Enabled :ref:`box.tuple.new() ` to work without ``box.cfg()``
- (:tarantool-issue:`2047`).
- * :ref:`box.atomic(fun, ...) ` wrapper to execute function in a transaction
- (:tarantool-issue:`818`).
- * :ref:`box.session.type() ` helper to determine session type
- (:tarantool-issue:`2642`).
- * Hot code :ref:`reload ` for stored C stored procedures.
- Use ``box.schema.func.reload('modulename.function')``
- to reload dynamic shared libraries on the fly
- (:tarantool-issue:`910`).
- * :ref:`string.hex() ` and ``str:hex()`` Lua API
- (:tarantool-issue:`2522`).
- * Package manager based on LuaRocks.
- Use ``tarantoolctl rocks install MODULENAME`` to install MODULENAME Lua module
- from https://rocks.tarantool.org/.
- (:tarantool-issue:`2067`).
- * Lua 5.1 command line options.
- Tarantool binary now supports '-i', '-e', '-m' and '-l' command line options
- (:tarantool-issue:`1265`).
- * Experimental GC64 mode for LuaJIT.
- GC64 mode allow to operate the full address space on 64-bit hosts.
- Enable via ``-DLUAJIT_ENABLE_GC64=ON compile-time`` configuration option
- (:tarantool-issue:`2643`).
- * Syslog logger now support non-blocking mode.
- :ref:`box.cfg{log_nonblock=true} ` now also works for syslog logger
- (:tarantool-issue:`2466`).
- * Added a VERBOSE :ref:`log level ` beyond INFO
- (:tarantool-issue:`2467`).
- * Tarantool now automatically makes snapshots every hour.
- Please set :ref:`box.cfg{checkpoint_interval=0 ` to restore pre-1.7.5 behavior
- (:tarantool-issue:`2496`).
- * Increase precision for percentage ratios provided by :ref:`box.slab.info() `
- (:tarantool-issue:`2082`).
- * Stack traces now contain symbols names on all supported platforms.
- Previous versions of Tarantool didn't display meaningful function names in
- :ref:`fiber.info() ` on non-x86 platforms
- (:tarantool-issue:`2103`).
- * Allowed to create fiber with custom stack size from C API
- (:tarantool-issue:`2438`).
- * Added ``ipc_cond`` to public C API
- (:tarantool-issue:`1451`).
-
-New rocks:
-
- * :ref:`http.client ` (built-in) - libcurl-based HTTP client with SSL/TLS support
- (:tarantool-issue:`2083`).
- * :ref:`iconv ` (built-in) - bindings for iconv
- (:tarantool-issue:`2587`).
- * `authman `_ - API for
- user registration and login in your site using email and social networks.
- * `document `_ - store nested documents in Tarantool.
- * `synchronized `_ - critical sections for Lua.
-
-.. _whats_new_174:
-
-**Release 1.7.4**
-
-Release type: release candidate. Release date: 2017-05-12. Release tag: Tag: 1.7.4.
-
-Release: :tarantool-release:`1.7.4`
-or https://groups.google.com/forum/#!topic/tarantool/3x88ATX9YbY
-
-This is a release candidate in the 1.7 series.
-Vinyl Engine, the flagship feature of 1.7.x, is now feature complete.
-
-Incompatible changes
-
- * ``box.cfg()`` options were changed to add Vinyl support:
-
- * ``snap_dir`` renamed to ``memtx_dir``
- * ``slab_alloc_arena`` (gigabytes) renamed to ``memtx_memory`` (bytes),
- default value changed from 1Gb to 256MB
- * ``slab_alloc_minimal`` renamed to ``memtx_min_tuple_size``
- * ``slab_alloc_maximal`` renamed to ``memtx_max_tuple_size``
- * ``slab_alloc_factor`` is deprecated, not relevant in 1.7.x
- * ``snapshot_count`` renamed to ``checkpoint_count``
- * ``snapshot_period`` renamed to ``checkpoint_interval``
- * ``logger`` renamed to ``log``
- * ``logger_nonblock`` renamed to ``log_nonblock``
- * ``logger_level`` renamed to ``log_level``
- * ``replication_source`` renamed to ``replication``
- * ``panic_on_snap_error = true`` and ``panic_on_wal_error = true``
- superseded by ``force_recovery = false``
-
- Until Tarantool 1.8, you can use deprecated parameters for both
- initial and runtime configuration, but such usage will print
- a warning in the server log
- (:tarantool-issue:`1927` and
- :tarantool-issue:`2042`).
-
- * Hot standy mode is now off by default. Tarantool automatically detects
- another running instance in the same ``wal_dir`` and refuses to start.
- Use ``box.cfg {hot_standby = true}`` to enable the hot standby mode
- (:tarantool-issue:`775`).
- * UPSERT via a secondary key was banned to avoid unclear semantics
- (:tarantool-issue:`2226`).
- * ``box.info`` and ``box.info.replication`` format was changed to display
- information about upstream and downstream connections
- ((:tarantool-issue:`723`):
-
- * Added ``box.info.replication[instance_id].downstream.vclock`` to display
- the last sent row to remote replica.
- * Added ``box.info.replication[instance_id].id``.
- * Added ``box.info.replication[instance_id].lsn``.
- * Moved ``box.info.replication[instance_id].{vclock,status,error}`` to
- ``box.info.replication[instance_id].upstream.{vclock,status,error}``.
- * All registered replicas from ``box.space._cluster`` are included to
- ``box.info.replication`` output.
- * ``box.info.server.id`` renamed ``box.info.id``
- * ``box.info.server.lsn`` renamed ``box.info.lsn``
- * ``box.info.server.uuid`` renamed ``box.info.uuid``
- * ``box.info.cluster.signature`` renamed to ``box.info.signature``
- * ``box.info.id`` and ``box.info.lsn`` now return `nil` instead of `-1`
- during initial cluster bootstrap.
-
- * ``net.box``: added per-request options to all requests:
-
- * ``conn.call(func_name, arg1, arg2,...)`` changed to
- ``conn.call(func_name, {arg1, arg2, ...}, opts)``
- * ``conn.eval(func_name, arg1, arg2,...)`` changed to
- ``conn.eval(func_name, {arg1, arg2, ...}, opts)``
-
- * All requests now support ``timeout = ``, ``buffer = `` options.
- * Added ``connect_timeout`` option to ``netbox.connect()``.
- * ``netbox:timeout()`` and ``conn:timeout()`` are now deprecated.
- Use ``netbox.connect(host, port, { call_16 = true })`` for
- 1.6.x-compatible behavior
- (:tarantool-issue:`2195`).
- * systemd configuration changed to support ``Type=Notify`` / ``sd_notify()``.
- Now ``systemctl start tarantool@INSTANCE`` will wait until Tarantool
- has started and recovered from xlogs. The recovery status is reported to
- ``systemctl status tarantool@INSTANCE``
- (:tarantool-issue:`1923`).
- * ``log`` module now doesn't prefix all messages with the full path to
- tarantool binary when used without ``box.cfg()``
- (:tarantool-issue:`1876`).
- * ``require('log').logger_pid()`` was renamed to ``require('log').pid()``
- (:tarantool-issue:`2917`).
- * Removed Lua 5.0 compatible defines and functions
- (:tarantool-issue:`2396`):
-
- * ``luaL_reg`` removed in favor of ``luaL_Reg``
- * ``luaL_getn(L, i)`` removed in favor of ``lua_objlen(L, i)``
- * ``luaL_setn(L, i, j)`` removed (was no-op)
- * ``lua_ref(L, lock)`` removed in favor of ``luaL_ref(L, lock)``
- * ``lua_getref(L,ref)`` removed in favor of ``lua_rawgeti(L, LUA_REGISTRYINDEX, (ref))``
- * ``lua_unref(L, ref)`` removed in favor of ``luaL_unref(L, ref)``
- * ``math.mod()`` removed in favor of ``math.fmod()``
- * ``string.gfind()`` removed in favor of ``string.gmatch()``
-
-Functionality added or changed:
-
- * (Vinyl) multi-level compaction.
- The compaction scheduler now groups runs of the same range into levels to
- reduce the write amplification during compaction. This design allows Vinyl
- to support 1:100+ ram:disk use-cases
- (:tarantool-issue:`1821`).
- * (Vinyl) bloom filters for sorted runs.
- Bloom filter is a probabilistic data structure which can be used to test
- whether a requested key is present in a run file without reading the actual
- file from the disk. Bloom filter may have false-positive matches but
- false-negative matches are impossible. This feature reduces the number
- of seeks needed for random lookups and speeds up REPLACE/DELETE with
- enabled secondary keys
- (:tarantool-issue:`1919`).
- * (Vinyl) key-level cache for point lookups and range queries.
- Vinyl storage engine caches selected keys and key ranges instead of
- entire disk pages like in traditional databases. This approach is more
- efficient because the cache is not polluted with raw disk data
- (:tarantool-issue:`1692`).
- * (Vinyl) implemented`).
- Now all in-memory indexes of a space store pointers to the same tuples
- instead of cached secondary key index data. This feature significantly
- reduces the memory footprint in case of secondary keys
- (:tarantool-issue:`1908`).
- * (Vinyl) new implementation of initial state transfer of JOIN command in
- replication protocol. New replication protocol fixes problems with
- consistency and secondary keys. We implemented a special kind of low-cost
- database-wide read-view to avoid dirty reads in JOIN procedure. This trick
- wasn't not possible in traditional B-Tree based databases
- (:tarantool-issue:`2001`).
- * (Vinyl) index-wide mems/runs.
- Removed ranges from in-memory and and the stop layer of LSM tree on disk
- (:tarantool-issue:`2209`).
- * (Vinyl) coalesce small ranges.
- Before dumping or compacting a range, consider coalescing it with its
- neighbors
- (:tarantool-issue:`1735`).
- * (Vinyl) implemented transnational journal for metadata.
- Now information about all Vinyl files is logged in a special ``.vylog`` file
- (:tarantool-issue:`1967`).
- * (Vinyl) implemented consistent secondary keys
- (:tarantool-issue:`2410`).
- * (Memtx+Vinyl) implemented low-level Lua API to create consistent backups.
- of Memtx + Vinyl data. The new feature provides ``box.backup.start()/stop()``
- functions to create backups of all spaces.
- :ref:`box.backup.start() ` pauses the
- Tarantool garbage collector and returns the list of files to copy. These files then
- can be copied be any third-party tool, like cp, ln, tar, rsync, etc.
- ``box.backup.stop()`` lets the garbage collector continue.
- Created backups can be restored instantly by copying into a new directory
- and starting a new Tarantool instance. No special preparation, conversion
- or unpacking is needed
- (:tarantool-issue:`1916`).
- * (Vinyl) added statistics for background workers to ``box.info.vinyl()``
- (:tarantool-issue:`2005`).
- * (Memtx+Vinyl) reduced the memory footprint for indexes which keys are
- sequential and start from the first field. This optimization was necessary
- for secondary keys in Vinyl, but we optimized Memtx as well
- (:tarantool-issue:`2046`).
- * LuaJIT was rebased on the latest 2.1.0b3 with out patches
- (:tarantool-issue:`2396`):
-
- * Added JIT compiler backend for ARM64
- * Added JIT compiler backend and interpreter for MIPS64
- * Added some more Lua 5.2 and Lua 5.3 extensions
- * Fixed several bugs
- * Removed Lua 5.0 legacy (see incompatible changes above).
-
- * Enabled a new smart string hashing algorithm in LuaJIT to avoid significant
- slowdown when a lot of collisions are generated.
- Contributed by Yury Sokolov (@funny-falcon) and Nick Zavaritsky (@mejedi).
- See https://github.com/tarantool/luajit/pull/2.
- * ``box.snapshot()`` now updates mtime of a snapshot file if there were no
- changes to the database since the last snapshot.
- (:tarantool-issue:`2045`).
- * Implemented ``space:bsize()`` to return the memory size utilized by all
- tuples of the space.
- Contributed by Roman Tokarev (@rtokarev).
- (:tarantool-issue:`2043`).
- * Exported new Lua/C functions to public API:
-
- * ``luaT_pushtuple``, ``luaT_istuple``
- (:tarantool-issue:`1878`)
- * ``luaT_error``, ``luaT_call``, ``luaT_cpcall``
- (:tarantool-issue:`2291`)
- * ``luaT_state``
- (:tarantool-issue:`2416`)
-
- * Exported new Box/C functions to public API: ``box_key_def``, ``box_tuple_format``,
- ``tuple_compare()``, ``tuple_compare_with_key()``.
- (:tarantool-issue:`2225`).
- * xlogs now can be rotated based on size (``wal_max_size``) as well as
- the number of written rows (``rows_per_wal``).
- (:tarantool-issue:`173`).
- * Added ``string.split()``, ``string.startswith()``, ``string.endswith()``,
- ``string.ljust()``, ``string.rjust()``, ``string.center()`` API
- (:tarantool-issue:`2211`,
- :tarantool-issue:`2214`,
- :tarantool-issue:`2415`).
- * Added ``table.copy()`` and ``table.deepcopy()`` functions.
- (:tarantool-issue:`2212`).
- * Added ``pwd`` module to work with UNIX users and groups.
- (:tarantool-issue:`2213`).
- * Removed noisy "client unix/: connected" messages from logs. Use
- ``box.session.on_connect()``/``on_disconnect()`` triggers instead.
- (:tarantool-issue:`1938`).
-
- ``box.session.on_connect()``/``on_disconnect()``/``on_auth()`` triggers
- now also fired for admin console connections.
-
- * tarantoolctl: ``eval``, ``enter``, ``connect`` commands now support UNIX pipes
- (:tarantool-issue:`672`).
- * tarantoolctl: improved error messages and added a new man page
- (:tarantool-issue:`1488`).
- * tarantoolctl: added filter by ``replica_id`` to ``cat`` and ``play`` commands
- (:tarantool-issue:`2301`).
- * tarantoolctl: ``start``, ``stop`` and ``restart`` commands now redirect to
- ``systemctl start/stop/restart`` when systemd is enabled
- (:tarantool-issue:`2254`).
- * net.box: added ``buffer = `` per-request option to store raw
- MessagePack responses into a C buffer
- (:tarantool-issue:`2195`).
- * net.box: added ``connect_timeout`` option
- (:tarantool-issue:`2054`).
- * net.box: added ``on_schema_reload()`` hook
- (:tarantool-issue:`2021`).
- * net.box: exposed ``conn.schema_version`` and ``space.connection`` to API
- (:tarantool-issue:`2412`).
- * log: ``debug()``/``info()``/``warn()``/``error()`` now doesn't fail on
- formatting errors
- (:tarantool-issue:`889`).
- * crypto: added HMAC support.
- Contributed by Andrey Kulikov (@amdei)
- (:tarantool-issue:`725`).
-
-.. _whats_new_173:
-
-**Release 1.7.3**
-
-Release type: beta. Release date: 2016-12-24. Release tag: Tag: 1.7.3-0-gf0c92aa.
-
-Release: :tarantool-release:`1.7.3`
-
-This is the second beta release in the 1.7 series.
-
-Incompatible changes:
-
- * Broken ``coredump()`` Lua function was removed.
- Use ``gdb -batch -ex "generate-core-file" -p $PID`` instead
- (:tarantool-issue:`1886`).
- * Vinyl disk layout was changed since 1.7.2 to add ZStandard compression and improve
- the performance of secondary keys.
- Use the replication mechanism to upgrade from 1.7.2 beta
- (:tarantool-issue:`1656`).
-
-Functionality added or changed:
-
- * Substantial progress on stabilizing the Vinyl storage engine:
-
- * Fix most known crashes and bugs with bad results.
- * Switch to use XLOG/SNAP format for all data files.
- * Enable ZStandard compression for all data files.
- * Squash UPSERT operations on the fly and merge hot keys using a
- background fiber.
- * Significantly improve the performance of index:pairs() and index:count().
- * Remove unnecessary conflicts from transactions.
- * In-memory level was mostly replaced by memtx data structures.
- * Specialized allocators are used in most places.
-
- * We're still actively working on Vinyl and plan to add multi-level
- compaction and improve the performance of secondary keys in 1.7.4.
- This implies a data format change.
- * Support for DML requests for space:on_replace() triggers
- (:tarantool-issue:`587`).
- * UPSERT can be used with the empty list of operations
- (:tarantool-issue:`1854`).
- * Lua functions to manipulate environment variables
- (:tarantool-issue:`1718`).
- * Lua library to read Tarantool snapshots and xlogs
- (:tarantool-issue:`1782`).
- * New ``play`` and ``cat`` commands in ``tarantoolctl``
- (:tarantool-issue:`1861`).
- * Improve support for the large number of active network clients.
- Issue#5#1892.
- * Support for ``space:pairs(key, iterator-type)`` syntax
- (:tarantool-issue:`1875`).
- * Automatic cluster bootstrap now also works without authorization
- (:tarantool-issue:`1589`).
- * Replication retries to connect to master indefinitely
- (:tarantool-issue:`1511`).
- * Temporary spaces now work with ``box.cfg { read_only = true }``
- (:tarantool-issue:`1378`).
- * The maximum length of space names increased to 64 bytes (was 32)
- (:tarantool-issue:`2008`).
-
-.. _whats_new_172:
-
-**Release 1.7.2**
-
-Release type: beta. Release date: 2016-09-29. Release tag: Tag: `1.7.2-1-g92ed6c4`.
-
-Release: https://groups.google.com/forum/#!topic/tarantool-ru/qUYUesEhRQg
-or :tarantool-release:`1.7.2`
-
-This is a release in the 1.7 series.
-
-Incompatible changes:
-
- * A new binary protocol command for CALL, which no more restricts a function
- to returning an array of tuples and allows returning an arbitrary MsgPack/JSON
- result, including scalars, nil and void (nothing).
- The old CALL is left intact for backward compatibility. It will be removed
- in the next major release. All programming language drivers will be gradually
- changed to use the new CALL
- (:tarantool-issue:`1296`).
-
-Functionality added or changed:
-
- * Vinyl storage engine finally reached the beta stage.
- This release fixes more than 90 bugs in Vinyl, in particular, removing
- unpredictable latency spikes, all known crashes and bad/lost result bugs.
-
- * new cooperative multitasking based architecture to eliminate latency spikes,
- * support for non-sequential multi-part keys,
- * support for secondary keys,
- * support for ``auto_increment()``,
- * number, integer, scalar field types in indexes,
- * INSERT, REPLACE and UPDATE return new tuple, like in memtx.
-
- * We're still actively working on Vinyl and plan to add ``zstd`` compression
- and a new memory allocator for Vinyl in-memory index in 1.7.3.
- This implies a data format change which we plan to implement before 1.7
- becomes generally available.
- * Tab-based autocompletion in the interactive console,
- ``require('console').connect()``, ``tarantoolctl enter`` and
- ``tarantoolctl connect`` commands
- (:tarantool-issue:`86` and
- :tarantool-issue:`1790`).
- Use the TAB key to auto complete the names of Lua variables, functions
- and meta-methods.
- * A new implementation of ``net.box`` improving performance and solving problems
- when the Lua garbage collector handles dead connections
- (:tarantool-issue:`799`,
- :tarantool-issue:`800`,
- :tarantool-issue:`1138` and
- :tarantool-issue:`1750`).
- * memtx snapshots and xlog files are now compressed on the fly using the fast
- `ZStandard `_ compression algorithm.
- Compression options are configured automatically to get an optimal trade-off
- between CPU utilization and disk throughput.
- * ``fiber.cond()`` - a new synchronization mechanism for cooperative multitasking
- (:tarantool-issue:`1731`).
- * Tarantool can now be installed using universal Snappy packages
- (http://snapcraft.io/) with ``snap install tarantool --channel=beta``.
-
-New rocks and packages:
-
- * `curl `_ - non-blocking bindings for libcurl
- * `prometheus `_ - Prometheus metric collector for Tarantool
- * `gis `_ - a full-featured geospatial extension for Tarantool
- * `mqtt `_ - an MQTT protocol client for Tarantool
- * `luaossl `_ - the most comprehensive OpenSSL module in the Lua universe
-
-Deprecated, removed features and minor incompatibilities:
-
- * ``num`` and ``str`` fields type names are deprecated, use
- ``unsigned`` and ``string`` instead
- (:tarantool-issue:`1534`).
- * ``space:inc()`` and ``space:dec()`` were removed (deprecated in 1.6.x)
- (:tarantool-issue:`1289`).
- * ``fiber:cancel()`` is now asynchronous and doesn't wait for the fiber to end
- (:tarantool-issue:`1732`).
- * Implicit error-prone ``tostring()`` was removed from ``digest`` API
- (:tarantool-issue:`1591`).
- * Support for SHA-0 (``digest.sha()``) was removed due to OpenSSL upgrade.
- * ``net.box`` now uses one-based indexes for ``space.name.index[x].parts``
- (:tarantool-issue:`1729`).
- * Tarantool binary now dynamically links with ``libssl.so`` during compile time
- instead of loading it at the run time.
- * Debian and Ubuntu packages switched to use native ``systemd`` configuration
- alongside with old-fashioned ``sysvinit`` scripts.
-
- ``systemd`` provides its own facilities for multi-instance management.
- To upgrade, perform the following steps:
-
- 1. Install new 1.7.2 packages.
- 2. Ensure that ``INSTANCENAME.lua`` file is present in ``/etc/tarantool/instances.enabled``.
- 3. Stop INSTANCENAME using ``tarantoolctl stop INSTANCENAME``.
- 4. Start INSTANCENAME using ``systemctl start tarantool@INSTANCENAME``.
- 5. Enable INSTANCENAME during system boot using ``systemctl enable trantool@INTANCENAME``.
- 6. Say ``systemctl disable tarantool; update-rc.d tarantool remove`` to disable
- sysvinit-compatible wrappers.
-
- Refer to (:tarantool-issue:`1291`),
- comment and :ref:`the administration chapter ` for additional information.
-
- * Debian and Ubuntu packages start a ready-to-use ``example.lua`` instance on
- a clean installation of the package.
- The default instance grants universe permissions for ``guest`` user and listens
- on "localhost:3313".
- * Fedora 22 packages were deprecated (EOL).
-
-.. _whats_new_171:
-
-**Release 1.7.1**
-
-Release type: alpha. Release date: 2016-07-11.
-
-Release: https://groups.google.com/forum/#!topic/tarantool/KGYj3VKJKb8
-or :tarantool-release:`1.7.1`
-
-This is the first alpha in the 1.7 series.
-The main feature of this release is a new storage engine, called "vinyl".
-Vinyl is a write optimized storage engine, allowing the amount
-of data stored exceed the amount of available RAM 10-100x times.
-Vinyl is a continuation of the Sophia engine from 1.6, and
-effectively a fork and a distant relative of Dmitry Simonenko's
-Sophia. Sophia is superseded and replaced by Vinyl.
-Internally it is organized as a log structured merge tree.
-However, it takes a serious effort to improve on the traditional
-deficiencies of log structured storage, such as poor read performance
-and unpredictable write latency. A single index
-is range partitioned among many LSM data structures, each having its
-own in-memory buffers of adjustable size. Range partitioning allows
-merges of LSM levels to be more granular, as well as to prioritize
-hot ranges over cold ones in access to resources, such as RAM and
-I/O. The merge scheduler is designed to minimize write latency
-while ensuring read performance stays within acceptable limits.
-Vinyl today only supports a primary key index. The index
-can consist of up to 256 parts, like in MemTX, up from 8 in
-Sophia. Partial key reads are supported.
-Support of non-sequential multi part keys, as well as secondary keys
-is on the short term todo.
-Our intent is to remove all limitations currently present in
-Vinyl, making it a first class citizen in Tarantool.
-
-Functionality added or changed:
-
- * The disk-based storage engine, which was called ``sophia`` or ``phia``
- in earlier versions, is superseded by the ``vinyl`` storage engine.
- * There are new types for indexed fields.
- * The LuaJIT version is updated.
- * Automatic replica set bootstrap (for easier configuration of a new replica set)
- is supported.
- * The ``space_object:inc()`` function is removed.
- * The ``space_object:dec()`` function is removed.
- * The ``space_object:bsize()`` function is added.
- * The ``box.coredump()`` function is removed, for an alternative see
- :ref:`Core dumps `.
- * The ``hot_standby`` configuration option is added.
- * Configuration parameters revised or renamed:
-
- * ``slab_alloc_arena`` (in gigabytes) to ``memtx_memory`` (in bytes),
- * ``slab_alloc_minimal`` to ``memtx_min_tuple_size``,
- * ``slab_alloc_maximal`` to ``memtx_max_tuple_size``,
- * ``replication_source`` to ``replication``,
- * ``snap_dir`` to ``memtx_dir``,
- * ``logger`` to ``log``,
- * ``logger_nonblock`` to ``log_nonblock``,
- * ``snapshot_count`` to ``checkpoint_count``,
- * ``snapshot_period`` to ``checkpoint_interval``,
- * ``panic_on_wal_error`` and ``panic_on_snap_error`` united under ``force_recovery``.
- * Until Tarantool 1.8, you can use :ref:`deprecated parameters `
- for both initial and runtime configuration, but Tarantool will display a warning.
- Also, you can specify both deprecated and up-to-date parameters, provided
- that their values are harmonized. If not, Tarantool will display an error.
- * Automatic replication cluster bootstrap; it's now much
- easier to configure a new replication cluster.
- * New indexable data types: INTEGER and SCALAR.
- * Code refactoring and performance improvements.
- * Updated LuaJIT to 2.1-beta116.
diff --git a/doc/release/1.8.rst b/doc/release/1.8.rst
deleted file mode 100644
index 0c423efe63..0000000000
--- a/doc/release/1.8.rst
+++ /dev/null
@@ -1,77 +0,0 @@
---------------------------------------------------------------------------------
-Tarantool 1.8
---------------------------------------------------------------------------------
-
-Release: :tarantool-release:`1.8.0`
-
-.. _whats_new_18:
-
-.. _whats_new_181:
-
-**Release 1.8.1**
-
-Release type: alpha. Release date: 2017-05-17. Tag: 1.8.1.
-Release: https://groups.google.com/forum/#!msg/tarantool-ru/XYaoqJpc544/mSvKrYwNAgAJ
-or :tarantool-release:`1.8.1.`
-
-This is an alpha release which delivers support for a substantial subset
-of the ISO/IEC 9075:2011 SQL standard, including joins, subqueries and views.
-SQL is a major feature of the 1.8 release series, in which we plan to add
-support for ODBC and JDBC connectors, SQL triggers, prepared statements,
-security and roles,
-and generally ensure SQL is a first class query language in Tarantool.
-
-Functionality added or changed:
-
- * A new function ``box.sql.execute()`` (later changed to ``box.execute``
- in Tarantool 2.1) was added to query Tarantool databases
- using SQL statements, e.g.:
-
- .. code-block:: tarantoolsession
-
- tarantool> box.sql.execute([[SELECT * FROM _schema]]);
-
- * SQL and Lua are fully interoperable.
- * New meta-commands introduced to Tarantool's console.
-
- You can now set input language to either SQL or Lua, e.g.:
-
- .. code-block:: tarantoolsession
-
- tarantool> \set language sql
- tarantool> SELECT * FROM _schema
- tarantool> \set language lua
- tarantool> print("Hello, world!")
-
- * Most SQL statements are supported:
-
- * CREATE/DROP TABLE/INDEX/VIEW
-
- .. code-block:: tarantoolsession
-
- tarantool> CREATE TABLE table1 (column1 INTEGER PRIMARY KEY, column2 VARCHAR(100));
-
- * INSERT/UPDATE/DELETE statements e.g.:
-
- .. code-block:: tarantoolsession
-
- tarantool> INSERT INTO table1 VALUES (1, 'A');
- ...
- tarantool> UPDATE table1 SET column2 = 'B';
-
- * SELECT statements, including complex complicated variants which include
- multiple JOINs, nested SELECTs etc. e.g.:
-
- .. code-block:: tarantoolsession
-
- tarantool> SELECT sum(column1) FROM table1 WHERE column2 LIKE '_B' GROUP BY column2;
-
- * WITH statements e.g.
-
- .. code-block:: tarantoolsession
-
- tarantool> WITH cte AS ( SELECT SUBSTR(column2,1,2), column1 FROM table1 WHERE column1 >= 0) SELECT * FROM cte;
-
- * SQL schema is persistent, so it is able to survive ``snapshot()``/``restore()`` sequence.
- * SQL features are described in a :ref:`tutorial `.
-
diff --git a/doc/release/1.9.rst b/doc/release/1.9.rst
deleted file mode 100644
index 53a5e87a7e..0000000000
--- a/doc/release/1.9.rst
+++ /dev/null
@@ -1,117 +0,0 @@
---------------------------------------------------------------------------------
-Tarantool 1.9
---------------------------------------------------------------------------------
-
-Release: :tarantool-release:`1.9.0`
-
-.. _whats_new_19:
-
-.. _whats_new_190:
-
-**Release 1.9.0**
-
-Release type: stable. Release date: 2018-02-26. Tag: 1.9.0-4-g195d446.
-
-Release: :tarantool-release:`1.9.0.`
-
-This is the successor of the 1.7.6 stable release.
-The goal of this release is increased maturity of vinyl and master-master replication,
-and it contributes a number of features to this cause. Please follow the download
-instructions at https://tarantool.io/en/download/download.html to download and install
-a package for your operating system.
-
-Functionality added or changed:
-
- * (Security) it is now possible to
- :ref:`block/unblock ` users.
- (:tarantool-issue:`2898`).
- * (Security) new function :ref:`box.session.euid() ` to return effective user.
- Effective user can be different from authenticated user in case of ``setuid``
- functions or ``box.session.su``.
- (:tarantool-issue:`2994`).
- * (Security) new :ref:`super ` role, with superuser access. Grant 'super' to guest to
- disable access control.
- (:tarantool-issue:`3022`).
- * (Security) :ref:`on_auth ` trigger is now fired in case of both successful and
- failed authentication.
- (:tarantool-issue:`3039`).
- * (Replication/recovery) new replication configuration algorithm: if replication
- doesn't connect to replication_quorum peers in :ref:`replication_connect_timeout `
- seconds, the server start continues but the server enters the new :ref:`orphan ` status,
- which is basically read-only, until the replicas connect to each other.
- (:tarantool-issue:`3151` and
- :tarantool-issue:`2958`).
- * (Replication/recovery) after replication connect at startup, the server does
- not start processing write requests before
- :ref:`syncing up ` syncing up with all connected peers.
- * (Replication/recovery) it is now possible to explicitly set
- :ref:`instance_uuid ` and
- :ref:`replica set uuid ` as configuration parameters.
- (:tarantool-issue:`2967`).
- * (Replication/recovery) :ref:`box.once() ` no longer fails on a read-only replica
- but waits.
- (:tarantool-issue:`2537`).
- * (Replication/recovery) :ref:`force_recovery ` can now skip a corrupted xlog file.
- (:tarantool-issue:`3076`).
- * (Replication/recovery) improved replication monitoring: :ref:`box.info.replication `
- shows peer ip:port and correct replication lag even for idle peers.
- (:tarantool-issue:`2753` and
- :tarantool-issue:`2689`).
- * (Application server) new :ref:`before ` triggers which can be used for conflict
- resolution in master-master replication.
- (:tarantool-issue:`2993`).
- * (Application server) :ref:`http client ` now correctly parses cookies and supports
- http+unix:// paths.
- (:tarantool-issue:`3040` and
- :tarantool-issue:`2801`).
- * (Application server) ``fio`` rock now supports ``file_exists()``,
- ``rename()`` works across filesystems, and ``read()`` without arguments
- reads the whole file.
- (:tarantool-issue:`2924`,
- :tarantool-issue:`2751` and
- :tarantool-issue:`2925`).
- * (Application server) ``fio`` rock errors now follow Tarantool function call
- conventions and always return an error message in addition to the error flag.
- * (Application server) ``digest`` rock now supports pbkdf2 password hashing
- algorithm, useful in PCI/DSS compliant applications.
- (:tarantool-issue:`2874`).
- * (Application server) :ref:`box.info.memory() ` provides a high-level overview of
- server memory usage, including networking, Lua, transaction and index memory.
- (:tarantool-issue:`934`).
- * (Database) it is now possible to :ref:`add missing tuple fields ` to an index,
- which is very useful when adding an index along with the evolution of the
- database schema.
- :tarantool-issue:`2988`).
- * (Database) lots of improvements in field type support when creating or
- :ref:`altering ` spaces and indexes.
- (:tarantool-issue:`2893`,
- :tarantool-issue:`3011` and
- :tarantool-issue:`3008`).
- * (Database) it is now possible to turn on :ref:`is_nullable ` property on a field
- even if the space is not empty, the change is instantaneous.
- (:tarantool-issue:`2973`).
- * (Database) :ref:`logging ` has been improved in many respects: individual messages
- (:tarantool-issue:`1972`,
- :tarantool-issue:`2743`,
- :tarantool-issue:`2900`),
- more logging in cases when it was useful
- (:tarantool-issue:`3096`,
- :tarantool-issue:`2871`).
- * (Vinyl storage engine) it is now possible to make a :ref:`unique ` vinyl index
- non-unique without index rebuild.
- (:tarantool-issue:`2449`).
- * (Vinyl storage engine) improved UPDATE, REPLACE and recovery performance in
- presence of secondary keys.
- (:tarantool-issue:`2289`,
- :tarantool-issue:`2875` and
- :tarantool-issue:`3154`).
- * (Vinyl storage engine) :ref:`space:len() ` and
- :ref:`space:bsize() ` now work for
- vinyl (although they are still not exact).
- (:tarantool-issue:`3056`).
- * (Vinyl storage engine) recovery speed has improved in presence of secondary
- keys.
- (:tarantool-issue:`2099`).
- * (Builds) Alpine Linux support.
- (:tarantool-issue:`3067`).
-
diff --git a/doc/release/2.1.2.rst b/doc/release/2.1.2.rst
deleted file mode 100644
index 8b864b4ba3..0000000000
--- a/doc/release/2.1.2.rst
+++ /dev/null
@@ -1,192 +0,0 @@
-
--------------------------------------------------------------------------------
-Tarantool 2.1.2 and earlier
--------------------------------------------------------------------------------
-
-Release: https://github.com/tarantool/tarantool/releases
-
-.. _whats_new_212:
-
-**Release 2.1.2**
-
-Release type: stable. Release date: 2019-04-05.
-
-Release: :tarantool-release:`2.1.2.`
-
-This is the first :ref:`stable ` release in the 2.x series.
-
-The goal of this release is to significantly extend SQL support and increase
-stability.
-
-Functionality added or changed:
-
-* (SQL) ``box.sql.execute()`` replaced with
- :ref:`box.execute() `.
- It now works just like ``netbox.execute()``:
- returns result set metadata, row count, etc. E.g.:
-
- .. code-block:: tarantoolsession
-
- box.execute("CREATE TABLE person(id INTEGER PRIMARY KEY, birth_year INT)")
- ---
- - row_count: 1
- ...
- box.execute("SELECT birth_year FROM person")
- ---
- - metadata:
- - name: birth_year
- type: INTEGER
- rows:
- - [1983]
- - [1984]
- ...
-
-* (SQL) Type system was :ref:`significantly refactored `.
-
-* (SQL) There are cases in SQL when it is possible to do Tarantool’s
- update operation for UPDATE statement, instead of doing delete + insert.
- However, there are cases where SQL semantics is too complex. E.g.:
-
- .. code-block:: sql
-
- CREATE TABLE file (id INT PRIMARY KEY, checksum INT);
- INSERT INTO stock VALUES (1, 3),(2, 4),(3,5);
- CREATE UNIQUE INDEX i ON file (checksum);
- SELECT * FROM file;
- -- [1, 3], [2, 4], [3, 5]
- UPDATE OR REPLACE file SET checksum = checksum + 1;
- SELECT * FROM stock;
- -- [1, 4], [3, 6]
-
- I.e. [1, 3] tuple is updated as [1, 4] and have replaced tuple [2, 4].
- This logic is implemented by preventive tuple deletion from all corresponding
- indexes in SQL.
-
-* (SQL) Now SQL’s integer type is stored as integer in space’s format.
- It was stored as scalar before, which made comparisons slow.
-
-* (SQL) It is now possible to define a constraint
- :ref:`within column definition `. E.g.:
-
- .. code-block:: sql
-
- CREATE TABLE person (id INT PRIMARY KEY, age INT, CHECK (age > 10));
-
-* (SQL) Syntax for the pragma ``pragma index_info`` is now unified with
- ``table_info``.
- E.g. to get information on index ``age_index`` of table ``person`` you can write:
-
- .. code-block:: sql
-
- pragma index_info(person.age_index);
-
-* (Server) It is now possible to index a field specified using JSON. E.g.:
-
- .. code-block:: lua
-
- person = box.schema.create_space("person")
- name_idx = person:create_index('name', {parts = {{'[2]fname', 'str'}, {'[2]sname', 'str'}}})
- person:insert({1, {fname='James', sname='Bond'}, {town='London', country='GB', organization='MI6'}})
-
-* (Server) In case of out of space event, Tarantool is now allowed to delete
- backup WAL files not needed for recovery from the last checkpoint.
-
-* (Server) Add support for :ref:`tarantoolctl rocks pack / unpack `
- subcommands. The subcommands are used to create / deploy binary rock distributions.
-
-* (Server) ``string.rstrip`` and ``string.lstrip`` should accept symbols to
- strip. Add optional 'chars' parameter for specifying the unwanted characters. E.g.:
-
- .. code-block:: lua
-
- local chars = "#\0"
- str = "##Hello world!#"
- print(string.strip(str, chars)) -- "Hello world!"
-
-* (Server) :ref:`on_shutdown ` trigger added.
- It may be set in a way similar to ``space:on_replace`` triggers:
-
- .. code-block:: lua
-
- box.ctl.on_shutdown(new_trigger, old_trigger)
-
-* (Server) :ref:`on_schema_init ` trigger added.
- It may be set before the first call to ``box.cfg()`` and is fired during
- ``box.cfg()`` before user data recovery start. To set the trigger, say:
-
- .. code-block:: lua
-
- box.ctl.on_schema_init(new_trig, old_trig)
-
-* (Server) A new option for the snapshot daemon,
- :ref:`box.cfg.checkpoint_wal_threshold `,
- allows to limit the maximum disk size of maintained WALs.
- Once the configured threshold is exceeded, the WAL thread notifies the
- che ckpoint daemon that it's time to make a new checkpoint and delete old WAL files.
-
-* (Server) New types of :ref:`privileges ` --
- to create, alter and drop space -- were introduced.
- In order to create, drop or alter space or index, you should have
- a corresponding privilege. E.g.:
-
- .. code-block:: lua
-
- box.schema.user.create("optimizer", { password = 'secret' })
- box.schema.user.grant("optimizer", "alter", "space")
- person = box.schema.space.create("person")
- box.session.su("optimizer")
- i = s:c reate_index("primary") -- success
- s:insert{1} -- fail
- s:select{} -- fail
- s:drop() -- fail
-
- Notice the incompatible change: Tarantool 1.10 requires read/write/execute
- privileges on an object to allow create, drop or alter. These privileges are
- no longer sufficient in 2.1. To remedy the problem, Tarantool 2.1 automatically
- grants create/drop/alter privileges on an object if a user has
- read/write/execute privileges on it during schema upgrade.
- But old scripts may stop working if read/write/execute is granted **after**
- schema upgrade.
-
- Additionally, create/drop/alter privileges are already supported in 1.10,
- which also supports the old semantics of read/write/execute.
- You are encouraged to grant new privileges in 1.10 before upgrade
- and modify your scripts.
-
-.. _whats_new_211:
-
-**Release 2.1.1**
-
-Release type: beta. Release date: 2018-11-14.
-
-Release: :tarantool-release:`2.1.1.`
-
-This release resolves all major bugs since 2.0.4 alpha and extends Tarantool's
-SQL feature set.
-
-.. _whats_new_204:
-
-**Release 2.0.4**
-
-Release type: alpha. Release date: 2018-02-15.
-
-Release: :tarantool-release:`2.0.4.`
-
-This is a successor of the 1.8.x releases.
-It improves the overall stability of the SQL engine and has some new features.
-
-Functionality added or changed:
-
- * Added support for SQL collations by incorporating libICU character set and
- collation library.
- * IPROTO interface was extended to support SQL queries.
- * ``net.box`` subsystem was extended to support SQL queries.
- * Enabled ``ANALYZE`` statement to produce correct results, necessary for
- efficient query plans.
- * Enabled savepoints functionality. ``SAVEPOINT`` statement works w/o issues.
- * Enabled ``ALTER TABLE ... RENAME`` statement.
- * Improved rules for identifier names: now fully consistent with Lua frontend.
- * Enabled support for triggers; trigger bodies now persist in Tarantool snapshots
- and survive server restart.
- * Significant performance improvements.
-
diff --git a/doc/release/2.10.0.rst b/doc/release/2.10.0.rst
deleted file mode 100644
index c011978766..0000000000
--- a/doc/release/2.10.0.rst
+++ /dev/null
@@ -1,1273 +0,0 @@
-Tarantool 2.10.0
-================
-
-Released on 2022-05-22.
-
-* Release: :tarantool-release:`2.10.0`.
-* Tag: ``2.10.0``.
-
-Overview
---------
-
-2.10.0 is the first
-:doc:`stable ` version of the 2.10 release series.
-It introduces 107 improvements and resolves 131 bugs since version :doc:`2.8.1 `.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report it `__ on GitHub.
-
-Notable changes are:
-
- - HTTP client now supports HTTP/2.
- - Support of the new DATETIME type.
- - Improved type consistency in SQL.
- - Added transaction isolation levels.
- - Implemented fencing and pre-voting in RAFT.
- - Introduced foreign keys and constraints.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade `
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Some changes are labeled as **[Breaking change]**.
-It means that the old behavior was considered error-prone
-and therefore changed to protect users from unintended mistakes.
-However, there is a small probability that someone can rely on the old behavior,
-and this label is to bring attention to the things that have been changed.
-
-The changes that break backward compatibility are listed below:
-
-* ``fiber.wakeup()`` in Lua and ``fiber_wakeup()`` in C became NOP on the
- currently running fiber.
-
-* The ``timeout()`` method of ``net.box`` connection was dropped.
-
-* The net.box console support was dropped.
-
-* The return value type for all time64 functions was changed from ``uint64_t`` to
- ``int64_t``.
-
-Functionality added or changed
-------------------------------
-
-Core
-~~~~
-
-- The ``UUID`` field type is now part of the ``SCALAR`` field type
- (:tarantool-issue:`6042`).
-
-- The ``UUID`` field type is now available in SQL. A new ``UUID`` can
- be generated using the new SQL built-in ``UUID()`` function
- (:tarantool-issue:`5886`).
-
-- **[Breaking change]** The ``timeout()`` method of ``net.box`` connection,
- marked deprecated more than four years ago (in ``1.7.4``), has been dropped.
- It negatively affected the performance of hot ``net.box`` methods,
- such as ``call()`` and ``select()`` if they were called without
- specifying a timeout (:tarantool-issue:`6242`).
-
-- Improved ``net.box`` performance by up to 70% by rewriting hot code
- paths in C (:tarantool-issue:`6241`).
-
-- Introduced compact tuples that allow saving 4 bytes per tuple in case
- of small user data (:tarantool-issue:`5385`).
-
-- Now streams and interactive transactions over streams are implemented in iproto.
- Every stream is associated with its ID, which is unique within one connection.
- All requests with the same non-zero stream ID belong to the same stream.
- All requests in the stream are processed synchronously.
- The next request will not start executing until the previous one is completed.
- If a request's stream ID is ``0``, it does not belong to a stream
- and is processed in the old way.
-
- In ``net.box``, a stream is an object above the connection that has
- the same methods but allows executing requests sequentially. The ID is
- generated on the client-side automatically.
- If a user writes his own connector and wants to use streams,
- they must transmit the ``stream_id`` over the iproto protocol.
-
- The primary purpose of streams is transactions via iproto.
- As each stream can start a transaction, several transactions can be multiplexed over one connection.
- There are multiple ways to begin, commit, and rollback a transaction.
- One can do that using the appropriate stream methods, ``call``, ``eval``,
- or ``execute`` with the SQL transaction syntax. Users can mix these methods.
- For example, one might start a transaction using ``stream:begin()``,
- and commit it with ``stream:call('box.commit')`` or ``stream:execute('COMMIT')``.
-
- If any request fails during the transaction, it will not affect the other requests in the transaction.
- If a disconnect occurs while there is an active transaction in the stream,
- that transaction will be rolled back if it hasn't been committed before the connection failure
- (:tarantool-issue:`5860`).
-
-- Added the new ``memtx_allocator`` option to ``box.cfg{}``.
- It allows selecting the appropriate allocator for memtx tuples if necessary.
- The possible values are ``system`` for malloc allocator and ``small`` for
- the default small allocator.
-
- Implemented the system allocator based on malloc. The slab allocator, which is used for tuple allocation,
- has a particular disadvantage -- it is prone to unresolvable fragmentation on specific workloads (size migration).
- In this case, the user should be able to choose another allocator.
- The system allocator is based on the malloc function but restricted by the same quota as the slab allocator.
- The system allocator does not alloc all the memory at the start. Instead, it allocates memory as needed,
- checking that the quota is not exceeded
- (:tarantool-issue:`5419`).
-
-- Added ``box.stat.net.thread()`` for reporting per thread net
- statistics (:tarantool-issue:`6293`).
-
-- Added the new ``STREAMS`` metric to ``box.stat.net``. It contains
- statistics for iproto streams. The ``STREAMS`` contains the same counters
- as the ``CONNECTIONS`` metric in ``box.stat.net``: ``current``, ``RPS``, and
- ``total`` (:tarantool-issue:`6293`).
-
-- Extended the network protocol (IPROTO) with a new request type
- (``IPROTO_ID``). It is supposed to be used for exchanging sets of
- supported features between the server and client (:tarantool-issue:`6253`).
-
-- Added ``required_protocol_version`` and ``required_protocol_features``
- to ``net.box`` connection options. The new options allow specifying
- the IPROTO protocol version and features that must be supported by the server
- for the connection to pass (:tarantool-issue:`6253`).
-
-- **[Breaking change]** Added the ``msgpack.cfg.encode_error_as_ext``
- configuration option to enable/disable encoding errors as
- ``MP_ERROR`` MsgPack extension. The option is enabled by default
- (:tarantool-issue:`6433`).
-
-- **[Breaking change]** Removed ``box.session.setting.error_marshaling_enabled``.
- Error marshalling is now enabled automatically if the connector supports it
- (:tarantool-issue:`6428`).
-
-- Added the new ``REQUESTS_IN_PROGRESS`` and ``REQUESTS_IN_STREAM_QUEUE``
- metrics to ``box.stat.net`` that contains detailed statistics for iproto requests.
- These metrics contain the same counters as other metrics in ``box.stat.net``:
- ``current``, ``RPS``, and ``total`` (:tarantool-issue:`6293`).
-
-- Implemented a timeout for ``fiber:join`` in Lua (:tarantool-issue:`6203`).
-
-- Updated libev to version 4.33 (:tarantool-issue:`4909`).
-
-- Added the new ``box.txn_id()`` function. It returns the ID of the
- current transaction if called within a transaction, nil otherwise.
-
-- Previously, if a yield occurs for a transaction that does not support
- it, all its statements are rolled back but still its new
- statements are processed (they will roll back with each yield). Also, the
- transaction will be rolled back when a commit is attempted. Now we
- stop processing any new statements right after the first yield if a
- transaction does not support it.
-
-- Implemented a timeout for transactions after which they are rolled
- back (:tarantool-issue:`6177`).
-
-- Implemented the new C API ``box_txn_set_timeout`` function to set a
- timeout for transactions.
-
-- Implemented a timeout for iproto transactions after which they are
- rolled back (:tarantool-issue:`6177`).
-
-- Implemented the new ``IPROTO_TIMEOUT 0x56`` key, which is used to set a
- timeout for transactions over iproto streams. It is stored in the
- body of ``IPROTO_BEGIN`` request.
-
-- Introduced ``box.broadcast`` and ``box.watch`` functions to
- signal/watch user-defined state changes (:tarantool-issue:`6257`).
-
-- Added watchers support to the network protocol (:tarantool-issue:`6257`).
-
-- Added watchers support to the ``net.box`` connector (:tarantool-issue:`6257`).
-
-- Now error objects with the code ``box.error.READONLY`` now have
- the additional fields explaining why the error happened.
-
- Also, there is a new field ``box.info.ro_reason``. It is ``nil`` on a
- writable instance, but reports a reason when ``box.info.ro`` is ``true``
- (:tarantool-issue:`5568`).
-
-- Implemented the ability to open several listening sockets. In
- addition to the ability to pass uri as a number or string, added the
- ability to pass uri as a table of numbers or strings (:tarantool-issue:`3554`).
-
-- **[Breaking change]** ``net.box`` console support, which was marked
- deprecated in 1.10, has been dropped. Use ``require('console').connect()``
- instead.
-
-- Added the ``takes_raw_args`` Lua function option for wrapping arguments
- in ``msgpack.object`` to skip decoding (:tarantool-issue:`3349`).
-
-- Implemented the graceful shutdown protocol for IPROTO connections
- (:tarantool-issue:`5924`).
-
-- Added ``fetch_schema`` flag to ``netbox.connect`` to control schema
- fetching from remote instance (:tarantool-issue:`4789`).
-
-- Added linking type (dynamic or static) to Tarantool build info.
-
-- Changed log level of some information messages from critical to info
- (:tarantool-issue:`4675`).
-
-- Added predefined system events: ``box.status``, ``box.id``,
- ``box.election``, and ``box.schema`` (:tarantool-issue:`6260`).
-
-- Introduced transaction isolation levels in Lua and IPROTO (:tarantool-issue:`6930`).
-
-- Added support for backtrace feature on AARCH64 architecture
- (:tarantool-issue:`6060`).
-
-- Implemented collection of parent backtrace for the newly created
- fibers. To enable the feature, call ``fiber.parent_backtrace_enable``. To disable it, call
- ``fiber.parent_backtrace_disable``: disabled by default (:tarantool-issue:`4302`).
-
-Memtx
-~~~~~
-
-- Introduced memtx MVCC memory monitoring (:tarantool-issue:`6150`).
-
-Vinyl
-~~~~~
-
-- Disabled the deferred ``DELETE`` optimization in Vinyl to avoid
- possible performance degradation of secondary index reads. Now, to
- enable the optimization, one has to set the ``defer_deletes`` flag in
- space options (:tarantool-issue:`4501`).
-
-Replication
-~~~~~~~~~~~
-
-- Introduced ``box.info.replication[n].downstream.lag`` field to
- monitor the state of replication. This member represents a lag between
- the main node writing a certain transaction to its own WAL and the
- moment it receives an ack for this transaction from a replica
- (:tarantool-issue:`5447`).
-
-- Introduced ``on_election`` triggers. The triggers may be registered via
- ``box.ctl.on_election()`` interface and are run asynchronously each
- time ``box.info.election`` changes (:tarantool-issue:`5819`).
-
-- It is now possible to decode incoming replication data in a separate
- thread. Added the ``replication_threads`` configuration option that
- controls how many threads may be spawned to do the task (default is 1)
- (:tarantool-issue:`6329`).
-
-Raft
-~~~~
-
-- Added the ``term`` field to ``box.info.synchro.queue``. It contains a
- term of the last ``PROMOTE``. It is usually equal to
- ``box.info.election.term`` but may be less than the election term
- when the new round of elections started, but no one promoted yet.
-
-- Servers with elections enabled won’t start new elections as long as
- at least one of their peers sees the current leader. They also won’t
- start the elections when they don’t have a quorum of connected peers.
- This should reduce cases when a server that has lost connectivity to
- the leader disrupts the whole cluster by starting new elections
- (:tarantool-issue:`6654`).
-
-- Added the ``leader_idle`` field to ``box.info.election`` table. The
- value shows time in seconds since the last communication with a known
- leader (:tarantool-issue:`6654`).
-
-LuaJIT
-~~~~~~
-
-- Introduced support for ``LJ_DUALNUM`` mode in ``luajit-gdb.py``
- (:tarantool-issue:`6224`).
-
-- Introduced preliminary support of GNU/Linux ARM64 and macOS M1. In
- the scope of this activity, the following issues have been resolved:
-
- - Introduced support for a full 64-bit range of lightuserdata values
- (:tarantool-issue:`2712`).
-
- - Fixed memory remapping issue when the page leaves 47-bit segments.
-
- - Fixed M1 architecture detection (:tarantool-issue:`6065`).
-
- - Fixed variadic arguments handling in FFI on M1 (:tarantool-issue:`6066`).
-
- - Fixed ``table.move`` misbehavior when table reallocation occurs
- (:tarantool-issue:`6084`).
-
- - Fixed Lua stack inconsistency when xpcall is called with an
- invalid second argument on ARM64 (:tarantool-issue:`6093`).
-
- - Fixed ``BC_USETS`` bytecode semantics for closed upvalues and gray
- strings.
-
- - Fixed side exit jump target patching considering the range values
- of the particular instruction (:tarantool-issue:`6098`).
-
- - Fixed current Lua coroutine restoring on an exceptional path on
- ARM64 (:tarantool-issue:`6189`).
-
-- Now memory profiler records allocations from traces grouping them by
- the trace number (:tarantool-issue:`5814`). The memory profiler parser can display
- the new type of allocation sources in the following format:
-
- .. code-block:: none
-
- | TRACE [] started at @:
-
-- Now the memory profiler reports allocations made by the JIT engine while
- compiling the trace as INTERNAL (:tarantool-issue:`5679`).
-
-- Now the memory profiler emits events of the new type when a function
- or a trace is created. As a result, the memory profiler parser can
- enrich its symbol table with the new functions and traces (:tarantool-issue:`5815`).
-
- Furthermore, there are symbol generations introduced within the
- internal parser structure to handle possible collisions of function
- addresses and trace numbers.
-
-- Now the memory profiler dumps symbol table for C functions. As a result,
- memory profiler parser can enrich its symbol table with C symbols
- (:tarantool-issue:`5813`). Furthermore, now memory profiler dumps special events for symbol
- table when it encounters a new C symbol, that has not been dumped yet.
-
-- Introduced the LuaJIT platform profiler (:tarantool-issue:`781`) and the profile
- parser. This profiler is able to capture both host and VM stacks, so
- it can show the whole picture. Both C and Lua API’s are available for
- the profiler. Profiler comes with the default parser, which produces
- output in a ``flamegraph.pl``-suitable format. The following profiling
- modes are available:
-
- - Default: only virtual machine state counters.
- - Leaf: shows the last frame on the stack.
- - Callchain: performs a complete stack dump.
-
-Lua
-~~~
-
-- Introduced the new method ``table.equals``. It compares two tables by value and
- respects the ``__eq`` metamethod.
-
-- Added support of console autocompletion for ``net.box`` objects
- ``stream`` and ``future`` (:tarantool-issue:`6305`).
-
-- Added the ``box.runtime.info().tuple`` metric to track the amount of
- memory occupied by tuples allocated on runtime arena (:tarantool-issue:`5872`).
-
- It does not count tuples that arrive from memtx or vinyl but counts
- tuples created on-the-fly: say, using ``box.tuple.new(<...>)``.
-
-Datetime
-^^^^^^^^
-
-- Added a new built-in module ``datetime.lua`` that allows operating
- timestamps and intervals values (:tarantool-issue:`5941`).
-
-- Added the method to allow converting string literals in extended
- iso-8601 or rfc3339 formats (:tarantool-issue:`6731`).
-
-- Extended the range of supported years in all parsers to cover fully
- -5879610-06-22..5879611-07-11 (:tarantool-issue:`6731`).
-
-- Datetime interval support has been reimplemented in C to make
- possible future Olson/tzdata and SQL extensions (:tarantool-issue:`6923`).
-
- Now all components of the interval values are kept and operated
- separately (years, months, weeks, days, hours, seconds, and
- nanoseconds). This allows applying date/time arithmetic correctly
- when we add/subtract intervals to datetime values.
-
-- Extended datetime literal parser with the ability to handle known
- timezone abbreviations (‘MSK’, ‘CET’, etc.) which are
- deterministically translated to their offset
- (:tarantool-issue:`5941`, :tarantool-issue:`6751`).
-
- Timezone abbreviations can be used in addition to the timezone offset
- in the datetime literals. For example, these literals produce equivalent
- datetime values:
-
- .. code-block:: lua
-
- local date = require('datetime')
- local d1 = date.parse('2000-01-01T02:00:00+0300')
- local d2 = date.parse('2000-01-01T02:00:00 MSK')
- local d3 = date.parse('2000-01-01T02:00:00 MSK', {format = '%FT%T %Z'})
-
- Parser fails if one uses ambiguous names (for example, ‘AT’) which could not
- be directly translated into timezone offsets.
-
-- Enabled support for timezone names in the constructor and
- ``date:set{}`` modifier via ``tz`` attribute. Currently, only
- timezone name abbreviations are supported (:tarantool-issue:`7076`).
-
- Timezone abbreviations can be used in addition to the timezone
- offset. They can be used during constructing or modifying a date
- object, or while parsing datetime literals. Numeric time offsets and
- named abbreviations produce equivalent datetime values:
-
- .. code-block:: lua
-
- local date = require('datetime')
- local d2 = date.parse('2000-01-01T02:00:00 MSK')
-
- local d1 = date.new{year = 1980, tz = 'MSK'}
- d2 = date.new{year = 1980, tzoffset = 180}
- d2:set{tz = 'MSK'}
-
- Note that the timezone name parser fails if one uses ambiguous names,
- which could not be translated into timezone offsets directly (for
- example, ‘AT’).
-
-Digest
-^^^^^^
-
-- Introduced new hash types in digest module -- ``xxhash32`` and
- ``xxhash64`` (:tarantool-issue:`2003`).
-
-Fiber
-^^^^^
-
-- Introduced ``fiber_object:info()`` to get ``info`` from fiber. Works
- as ``require('fiber').info()`` but only for one fiber.
-
-- Introduced ``fiber_object:csw()`` to get ``csw`` from fiber
- (:tarantool-issue:`5799`).
-
-- Changed ``fiber.info()`` to hide backtraces of idle fibers (:tarantool-issue:`4235`).
-
-- Improved fiber ``fiber.self()``, ``fiber.id()`` and ``fiber.find()``
- performance by 2-3 times.
-
-Log
-^^^
-
-- Implemented support of symbolic log levels representation in ``log``
- module (:tarantool-issue:`5882`). Now it is possible to specify levels the same way
- as in ``box.cfg{}`` call.
-
- For example, instead of
-
- .. code-block:: lua
-
- require('log').cfg{level = 6}
-
- one can use
-
- .. code-block:: lua
-
- require('log').cfg{level = 'verbose'}
-
-Msgpack
-^^^^^^^
-
-- Added the ``msgpack.object`` container for marshaling arbitrary MsgPack
- data (:tarantool-issue:`1629`, :tarantool-issue:`3349`, :tarantool-issue:`3909`,
- :tarantool-issue:`4861`, :tarantool-issue:`5316`).
-
-Netbox
-^^^^^^
-
-- Added the ``return_raw`` net.box option for returning ``msgpack.object``
- instead of decoding the response (:tarantool-issue:`4861`).
-
-Schema
-^^^^^^
-
-- ``is_multikey`` option may now be passed to
- ``box.schema.func.create`` directly, without ``opts`` sub-table.
-
-.. _2.10.0-sql:
-
-SQL
-~~~
-
-- Descriptions of type mismatch error and inconsistent type error
- became more informative (:tarantool-issue:`6176`).
-
-- Removed explicit cast from ``BOOLEAN`` to numeric types and vice
- versa (:tarantool-issue:`4770`).
-
-- Removed explicit cast from ``VARBINARY`` to numeric types and vice
- versa (:tarantool-issue:`4772`, :tarantool-issue:`5852`).
-
-- Fixed a bug due to which a string that is not ``NULL``-terminated
- could not be cast to ``BOOLEAN``, even if the conversion should be
- successful according to the rules.
-
-- Now a numeric value can be cast to another numeric type only if the
- cast is precise. In addition, a ``UUID`` value cannot be implicitly
- cast to ``STRING``/``VARBINARY``. Also, a ``STRING``/``VARBINARY``
- value cannot be implicitly cast to a ``UUID`` (:tarantool-issue:`4470`).
-
-- Now any number can be compared to any other number, and values of any
- scalar type can be compared to any other value of the same type. A
- value of a non-numeric scalar type cannot be compared with a value of
- any other scalar type (:tarantool-issue:`4230`).
-
-- SQL built-in functions were removed from the ``_func`` system space
- (:tarantool-issue:`6106`).
-
-- Functions are now looked up first in SQL built-in functions and then
- in user-defined functions.
-
-- Fixed incorrect error message in case of misuse of the function used
- to set the default value.
-
-- The ``typeof()`` function with ``NULL`` as an argument now returns
- ``NULL`` (:tarantool-issue:`5956`).
-
-- The ``SCALAR`` and ``NUMBER`` types have been reworked in SQL. Now
- ``SCALAR`` values cannot be implicitly cast to any other scalar type,
- and ``NUMBER`` values cannot be implicitly cast to any other numeric
- type. This means that arithmetic and bitwise operations and
- concatenation are no longer allowed for ``SCALAR`` and ``NUMBER``
- values. In addition, any ``SCALAR`` value can now be compared with
- values of any other scalar type using the ``SCALAR`` rules (:tarantool-issue:`6221`).
-
-- The ``DECIMAL`` field type is now available in SQL. Decimal can be
- implicitly cast to and from ``INTEGER`` and ``DOUBLE``, it can
- participate in arithmetic operations and comparison between
- ``DECIMAL``, and all other numeric types are defined (:tarantool-issue:`4415`).
-
-- The argument types of SQL built-in functions are now checked in most
- cases during parsing. In addition, the number of arguments is now
- always checked during parsing (:tarantool-issue:`6105`).
-
-- ``DECIMAL`` values can now be bound in SQL (:tarantool-issue:`4717`).
-
-- A value consisting of digits and a decimal point is now parsed as
- ``DECIMAL`` (:tarantool-issue:`6456`).
-
-- The ``ANY`` field type is now available in SQL (:tarantool-issue:`3174`).
-
-- Built-in SQL functions now work correctly with ``DECIMAL`` values
- (:tarantool-issue:`6355`).
-
-- The default type is now defined in case the argument type of an SQL
- built-in function cannot be determined during parsing (:tarantool-issue:`4415`).
-
-- The ``ARRAY`` field type is now available in SQL. The syntax has also
- been implemented to allow the creation of ``ARRAY`` values (:tarantool-issue:`4762`).
-
-- User-defined aggregate functions are now available in SQL (:tarantool-issue:`2579`).
-
-- Introduced SQL built-in functions ``NOW()`` and ``DATE_PART()``
- (:tarantool-issue:`6773`).
-
-- The left operand is now checked before the right operand in an
- arithmetic operation. (:tarantool-issue:`6773`).
-
-- The ``INTERVAL`` field type is introduced in SQL (:tarantool-issue:`6773`).
-
-- Bitwise operations can now only accept ``UNSIGNED`` and positive
- ``INTEGER`` values (:tarantool-issue:`5364`).
-
-- The ``MAP`` field type is now available in SQL. Also, the syntax has been
- implemented to allow the creation of ``MAP`` values (:tarantool-issue:`4763`).
-
-- Introduced ``[]`` operator for ``MAP`` and ``ARRAY`` values
- (:tarantool-issue:`6251`).
-
-Box
-~~~
-
-- Public role now has read, write access on ``_session_settings`` space
- (:tarantool-issue:`6310`).
-
-- The ``INTERVAL`` field type is introduced to ``BOX`` (:tarantool-issue:`6773`).
-
-- The behavior of empty or nil ``select`` calls on user spaces was
- changed. A critical log entry containing the current stack traceback
- is created upon such function calls. The user can explicitly request
- a full scan though by passing ``fullscan=true`` to ``select`` ’s
- ``options`` table argument, in which case a log entry will not be
- created (:tarantool-issue:`6539`).
-
-- Improved checking for dangerous ``select`` calls. The calls with
- ``offset + limit <= 1000`` are now considered safe, which means a
- warning is not issued. The ‘ALL’, ‘GE’, ‘GT’, ‘LE’, ‘LT’ iterators
- are now considered dangerous by default even with the key present
- (:tarantool-issue:`7129`).
-
-Datetime
-~~~~~~~~
-
-- Allowed using human-readable timezone names (for example,
- ‘Europe/Moscow’) in datetime strings. Use IANA ``tzdata`` (Olson DB)
- for timezone-related operations, such as DST-based timezone offset
- calculations (:tarantool-issue:`6751`).
-
-- The ``isdst`` field in the datetime object is now calculated
- correctly, according to the IANA ``tzdata`` (aka Olson DB) rules for
- the given date/time moment (:tarantool-issue:`6751`).
-
-- The ``datetime`` module exports the bidirectional ``TZ`` array, which
- can be used to translate the timezone index (``tzindex``) into
- timezone names, and vice versa (:tarantool-issue:`6751`).
-
-Fiber
-~~~~~
-
-- Previously csw (Context SWitch) of a new fiber could be more than 0,
- now it is always 0 (:tarantool-issue:`5799`).
-
-Luarocks
-~~~~~~~~
-
-- Set ``FORCE_CONFIG=false`` for luarocks config to allow loading
- project-side ``.rocks/config-5.1.lua``.
-
-Xlog
-~~~~
-
-- Reduced snapshot verbosity (:tarantool-issue:`6620`).
-
-Build
-~~~~~
-
-- Support fedora-34 build (:tarantool-issue:`6074`).
-
-- Stopped support fedora-28 and fedora-29.
-
-- Stopped support of Ubuntu Trusty (14.04) (:tarantool-issue:`6502`).
-
-- Bumped Debian package compatibility level to 10 (:tarantool-issue:`5429`).
-
-- Bumped minimal required debhelper to version 10 (except for Ubuntu
- Xenial).
-
-- Removed Windows binaries from Debian source packages (:tarantool-issue:`6390`).
-
-- Bumped Debian control Standards-Version to 4.5.1 (:tarantool-issue:`6390`).
-
-- Added bundling of libnghttp2 for bundled libcurl to support HTTP/2
- for http client. The CMake version requirement is updated from 3.2 to
- 3.3.
-
-- Support fedora-35 build (:tarantool-issue:`6692`).
-
-- Added bundling of GNU libunwind to support backtrace feature on
- AARCH64 architecture and distributives that don’t provide
- libunwind package.
-
-- Re-enabled backtrace feature for all RHEL distributions by default,
- except for AARCH64 architecture and ancient GCC versions, which
- lack compiler features required for backtrace (:tarantool-issue:`4611`).
-
-- Updated ``libicu`` version to 71.1 for static build.
-
-- Bumped OpenSSL from 1.1.1f to 1.1.1n for static build (:tarantool-issue:`6947`).
-
-- Updated libcurl to version 7.83.0 (:tarantool-issue:`6029`).
-
-- Support Fedora-36 build.
-
-- Support Ubuntu Jammy (22.04) build.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- **[Breaking change]** ``fiber.wakeup()`` in Lua and
- ``fiber_wakeup()`` in C became NOP on the currently running fiber.
-
- Previously they allowed ignoring the next yield or sleep, which
- resulted in unexpected erroneous wake-ups. Calling these functions
- right before ``fiber.create()`` in Lua or ``fiber_start()`` in C
- could lead to a crash (in debug build) or undefined behaviour (in
- release build) (:tarantool-issue:`6043`).
-
- There was a single use case for that—reschedule in the same event
- loop iteration which is not the same as ``fiber.sleep(0)`` in Lua and
- ``fiber_sleep(0)`` in C. It could be done in the following way:
-
- in C:
-
- .. code-block:: c
-
- fiber_wakeup(fiber_self());
- fiber_yield();
-
- in Lua:
-
- .. code-block:: lua
-
- fiber.self():wakeup()
- fiber.yield()
-
- To get the same effect in C, one can use ``fiber_reschedule()``. In Lua, it
- is now impossible to reschedule the current fiber directly in the same
- event loop iteration. One can reschedule self through a second fiber,
- but it is strongly discouraged:
-
- .. code-block:: lua
-
- local self = fiber.self()
- fiber.new(function() self:wakeup() end)
- fiber.sleep(0)
-
-- Fixed memory leak on each ``box.on_commit()`` and
- ``box.on_rollback()`` (:tarantool-issue:`6025`).
-
-- Fixed the lack of testing for non-joinable fibers in ``fiber_join()``
- call. This could lead to unpredictable results. Note the issue
- affects C level only, in Lua interface ``fiber:join()`` the
- protection is turned on already.
-
-- Now Tarantool yields when scanning ``.xlog`` files for the latest
- applied vclock and when finding the right place in ``.xlog``\ s to
- start recovering. This means that the instance is responsive right
- after ``box.cfg`` call even when an empty ``.xlog`` was not created
- on the previous exit. Also, this prevents the relay from timing out
- when a freshly subscribed replica needs rows from the end of a
- relatively long (hundreds of MBs) ``.xlog`` (:tarantool-issue:`5979`).
-
-- The counter in ``x.yM rows processed`` log messages does not reset on
- each new recovered ``xlog`` anymore.
-
-- Fixed wrong type specification when printing fiber state change which
- led to negative fiber’s ID logging (:tarantool-issue:`5846`).
-
- For example,
-
- .. code-block:: none
-
- main/-244760339/cartridge.failover.task I> Instance state changed
-
- instead of proper
-
- .. code-block:: none
-
- main/4050206957/cartridge.failover.task I> Instance state changed
-
-- Fiber IDs were switched to monotonically increasing unsigned 8-byte
- integers so that there would not be IDs wrapping anymore. This allows
- detecting fiber’s precedence by their IDs if needed (:tarantool-issue:`5846`).
-
-- Fixed a crash in JSON update on tuple/space when it had more than one
- operation, they accessed fields in reversed order, and these fields
- did not exist. Example: ``box.tuple.new({1}):update({{'=', 4, 4}, {'=', 3, 3}})``
- (:tarantool-issue:`6069`).
-
-- Fixed invalid results produced by the ``json`` module’s ``encode``
- function when it was used from Lua’s garbage collector. For instance,
- in functions used as ``ffi.gc()`` (:tarantool-issue:`6050`).
-
-- Added check for user input of the number of iproto threads—value must
- be > 0 and less than or equal to 1000 (:tarantool-issue:`6005`).
-
-- Fixed error related to the fact that if a user changed the listen
- address, all iproto threads closed the same socket multiple times.
-
-- Fixed error related to Tarantool not deleting the unix socket path
- when the work is finished.
-
-- Fixed a crash in MVCC during simultaneous update of a key in
- different transactions (:tarantool-issue:`6131`).
-
-- Fixed a bug when memtx MVCC crashed during reading uncommitted DDL
- (:tarantool-issue:`5515`).
-
-- Fixed a bug when memtx MVCC crashed if an index was created in the
- transaction (:tarantool-issue:`6137`).
-
-- Fixed segmentation fault with MVCC when an entire space was updated
- concurrently (:tarantool-issue:`5892`).
-
-- Fixed a bug with failed assertion after stress update of the same key
- (:tarantool-issue:`6193`).
-
-- Fixed a crash that happened when a user called ``box.snapshot``
- during an incomplete transaction (:tarantool-issue:`6229`).
-
-- Fixed console client connection breakage if request times out
- (:tarantool-issue:`6249`).
-
-- Added missing broadcast to ``net.box.future:discard()``. Now
- fibers waiting for a request result are woken up when the request is
- discarded (:tarantool-issue:`6250`).
-
-- ``box.info.uuid``, ``box.info.cluster.uuid``, and
- ``tostring(decimal)`` with any decimal number in Lua sometimes could
- return garbage if ``__gc`` handlers were used in the user’s code
- (:tarantool-issue:`6259`).
-
-- Fixed the error message that happened in a very specific case during
- MVCC operation (:tarantool-issue:`6247`).
-
-- Fixed a repeatable read violation after delete (:tarantool-issue:`6206`).
-
-- Fixed a bug when hash ``select{}`` was not tracked by MVCC engine
- (:tarantool-issue:`6040`).
-
-- Fixed a crash in MVCC after the drop of a space with several indexes
- (:tarantool-issue:`6274`).
-
-- Fixed a bug when GC at some state could leave tuples in secondary
- indexes (:tarantool-issue:`6234`).
-
-- Disallowed yields after DDL operations in MVCC mode. It fixes a crash
- which takes place in case several transactions refer to system spaces
- (:tarantool-issue:`5998`).
-
-- Fixed a bug in MVCC connected which happened on a rollback after DDL
- operation (:tarantool-issue:`5998`).
-
-- Fixed a bug when rollback resulted in unserializable behaviour
- (:tarantool-issue:`6325`).
-
-- At the moment, when a ``net.box`` connection is closed, all requests
- that have not been sent will be discarded. This patch fixes this
- behavior: all requests queued for sending before the connection is
- closed are guaranteed to be sent (:tarantool-issue:`6338`).
-
-- Fixed a crash during replace of malformed tuple into ``_schema`` system
- space (:tarantool-issue:`6332`).
-
-- Fixed dropping incoming messages when the connection is closed or
- ``SHUT_RDWR`` received and ``net_msg_max`` or readahead limit is
- reached (:tarantool-issue:`6292`).
-
-- Fixed memory leak in case of replace during background alter of the
- primary index (:tarantool-issue:`6290`).
-
-- Fixed a bug when rolled back changes appear in the
- built-in-background index (:tarantool-issue:`5958`).
-
-- Fixed a crash while encoding an error object in the MsgPack format
- (:tarantool-issue:`6431`).
-
-- Fixed a bug when an index was inconsistent after background build in
- case the primary index was hash (:tarantool-issue:`5977`).
-
-- Now inserting a tuple with the wrong ``id``` field into the ``_priv``
- space returns the correct error (:tarantool-issue:`6295`).
-
-- Fixed dirty read in MVCC after space alter (:tarantool-issue:`6263`, :tarantool-issue:`6318`).
-
-- Fixed a crash in case the fiber changing ``box.cfg.listen`` is woken up
- (:tarantool-issue:`6480`).
-
-- Fixed ``box.cfg.listen`` not reverted to the old address in case the
- new one is invalid (:tarantool-issue:`6092`).
-
-- Fixed a crash caused by a race between ``box.session.push()`` and
- closing connection (:tarantool-issue:`6520`).
-
-- Fixed a bug because of which the garbage collector could remove an
- ``xlog`` file that was still in use (:tarantool-issue:`6554`).
-
-- Fixed crash during granting privileges from guest (:tarantool-issue:`5389`).
-
-- Fixed an error in listening when the user passed uri in numerical
- form after listening unix socket (:tarantool-issue:`6535`).
-
-- Fixed a crash that could happen in case a tuple is deleted from a
- functional index while there is an iterator pointing to it (:tarantool-issue:`6786`).
-
-- Fixed memory leak in interactive console (:tarantool-issue:`6817`).
-
-- Fixed an assertion fail when passing a tuple without primary key
- fields to ``before_replace`` trigger. Now tuple format is checked
- before execution of ``before_replace`` triggers and after each one
- (:tarantool-issue:`6780`).
-
-- Banned DDL operations in space ``on_replace`` triggers, since they
- could lead to a crash (:tarantool-issue:`6920`).
-
-- Implemented constraints and foreign keys. Now users can create
- function constraints and foreign key relations (:tarantool-issue:`6436`).
-
-- Fixed a bug due to which all fibers created with
- ``fiber_attr_setstacksize()`` leaked until the thread exit. Their
- stacks also leaked except when ``fiber_set_joinable(..., true)`` was used.
-
-- Fixed a crash in MVCC related to a secondary index conflict
- (:tarantool-issue:`6452`).
-
-- Fixed a bug which resulted in wrong space count (:tarantool-issue:`6421`).
-
-- ``SELECT`` in RO transaction now reads confirmed data, like a
- standalone (autocommit) ``SELECT`` does (:tarantool-issue:`6452`).
-
-- Fixed a crash when Tarantool was launched with multiple ``-e`` or
- ``-l`` options without a space between the option and the value
- (:tarantool-issue:`5747`).
-
-- Fixed effective session and user not propagated to ``box.on_commit``
- and ``box.on_rollback`` trigger callbacks (:tarantool-issue:`7005`).
-
-- Fixed usage of ``box.session.peer()`` in ``box.session.on_disconnect()``
- trigger. Now it’s safe to assume that ``box.session.peer()`` returns
- the address of the disconnected peer, not nil, as it used to (:tarantool-issue:`7014`).
-
-- Fixed creation of a space with a foreign key pointing to the same
- space (:tarantool-issue:`6961`).
-
-- Fixed a bug when MVCC failed to track nothing-found range ``select``
- (:tarantool-issue:`7025`).
-
-- Allowed complex foreign keys with NULL fields (:tarantool-issue:`7046`).
-
-- Added decoding of election messages: ``RAFT`` and ``PROMOTE`` to
- ``xlog`` Lua module (:tarantool-issue:`6088`). Otherwise ``tarantoolctl`` shows plain
- number in ``type``
-
- .. code-block:: yaml
-
- HEADER:
- lsn: 1
- replica_id: 4
- type: 31
- timestamp: 1621541912.4592
-
- instead of symbolic representation
-
- .. code-block:: yaml
-
- HEADER:
- lsn: 1
- replica_id: 4
- type: PROMOTE
- timestamp: 1621541912.4592
-
-- **[Breaking change]** Return value signedness of 64-bit time
- functions in ``clock`` and ``fiber`` was changed from ``uint64_t`` to
- ``int64_t`` both in Lua and C (:tarantool-issue:`5989`).
-
-- Fixed reversed iterators gap tracking. Instead of tracking gaps for
- the successors of keys, gaps for tuples shifted by one to the left of
- the successor were tracked (:tarantool-issue:`7113`).
-
-Memtx
-~~~~~
-
-- Now memtx raises an error if the “clear” dictionary is passed to
- ``s:select()`` (:tarantool-issue:`6167`).
-
-- Fixed MVCC transaction manager story garbage collection breaking
- memtx TREE index iterator (:tarantool-issue:`6344`).
-
-Vinyl
-~~~~~
-
-- Fixed possible keys divergence during secondary index build, which
- might lead to missing tuples (:tarantool-issue:`6045`).
-
-- Fixed the race between Vinyl garbage collection and compaction
- that resulted in a broken vylog and recovery failure (:tarantool-issue:`5436`).
-
-- Immediate removal of compacted run files created after the last
- checkpoint optimization now works for replica’s initial JOIN stage
- (:tarantool-issue:`6568`).
-
-- Fixed crash during recovery of a secondary index in case the primary
- index contains incompatible phantom tuples (:tarantool-issue:`6778`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed the use after free in the relay thread when using elections (:tarantool-issue:`6031`).
-
-- Fixed a possible crash when a synchronous transaction was followed by
- an asynchronous transaction right when its confirmation was being
- written (:tarantool-issue:`6057`).
-
-- Fixed an error where a replica, while attempting to subscribe to a foreign
- cluster with a different replicaset UUID, did not notice it is impossible
- and instead became stuck in an infinite retry loop printing
- a ``TOO_EARLY_SUBSCRIBE`` error (:tarantool-issue:`6094`).
-
-- Fixed an error where a replica, while attempting to join a cluster with
- exclusively read-only replicas available, just booted its own replicaset,
- instead of failing or retrying. Now it fails with
- an error about the other nodes being read-only so they can’t register
- the new replica (:tarantool-issue:`5613`).
-
-- Fixed error reporting associated with transactions
- received from remote instances via replication.
- Any error raised while such a transaction was being applied was always reported as
- ``Failed to write to disk`` regardless of what really happened. Now the
- correct error is shown. For example, ``Out of memory``, or
- ``Transaction has been aborted by conflict``, and so on (:tarantool-issue:`6027`).
-
-- Fixed replication stopping occasionally with ``ER_INVALID_MSGPACK``
- when replica is under high load (:tarantool-issue:`4040`).
-
-- Fixed a cluster that sometimes could not bootstrap if it contained
- nodes with ``election_mode`` ``manual`` or ``voter`` (:tarantool-issue:`6018`).
-
-- Fixed a possible crash when ``box.ctl.promote()`` was called in a
- cluster with >= 3 instances, happened in debug build. In release
- build, it could lead to undefined behavior. It was likely to happen
- if a new node was added shortly before the promotion (:tarantool-issue:`5430`).
-
-- Fixed a rare error appearing when MVCC (``box.cfg.memtx_use_mvcc_engine``)
- was enabled and more than one replica was joined to a cluster.
- The join could fail with the error
- ``"ER_TUPLE_FOUND: Duplicate key exists in unique index 'primary' in space '_cluster'"``.
- The same could happen at the bootstrap of a cluster having >= 3 nodes
- (:tarantool-issue:`5601`).
-
-- Fixed replica reconnecting to a living master on any
- ``box.cfg{replication=...}`` change. Such reconnects could lead to
- replica failing to restore connection for ``replication_timeout``
- seconds (:tarantool-issue:`4669`).
-
-- Fixed potential obsolete data write in synchronous replication due
- to race in accessing terms while disk write operation is in progress
- and not yet completed.
-
-- Fixed replicas failing to bootstrap when the master has just
- restarted (:tarantool-issue:`6966`).
-
-- Fixed a bug when replication was broken on the master side with
- ``ER_INVALID_MSGPACK`` (:tarantool-issue:`7089`).
-
-Raft
-~~~~
-
-- Fixed ``box.ctl.promote()`` entering an infinite election loop when a
- node does not have enough peers to win the elections (:tarantool-issue:`6654`).
-
-- Servers with elections enabled will resign the leadership and become
- read-only when the number of connected replicas becomes less than a
- quorum. This should prevent split-brain in some situations (:tarantool-issue:`6661`).
-
-- Fixed a rare crash with the leader election enabled (any mode except
- ``off``), which could happen if a leader resigned from its role at
- the same time as some other node was writing something related to the
- elections to WAL. The crash was in debug build. In the release
- build, it would lead to undefined behavior (:tarantool-issue:`6129`).
-
-- Fixed an error when a new replica in a Raft cluster could try to join
- from a follower instead of a leader and failed with an error
- ``ER_READONLY`` (:tarantool-issue:`6127`).
-
-- Reconfiguration of ``box.cfg.election_timeout`` could lead to a crash
- or undefined behavior if done during an ongoing election with a
- special WAL write in progress.
-
-- Fixed several crashes and/or undefined behaviors (assertions in debug
- build) which could appear when new synchronous transactions were made
- during ongoing elections (:tarantool-issue:`6842`).
-
-LuaJIT
-~~~~~~
-
-- Fixed optimization for single-char strings in the ``IR_BUFPUT``
- assembly routine.
-
-- Fixed slots alignment in ``lj-stack`` command output when ``LJ_GC64``
- is enabled (:tarantool-issue:`5876`).
-
-- Fixed dummy frame unwinding in ``lj-stack`` command.
-
-- Fixed top part of Lua stack (red zone, free slots, top slot)
- unwinding in ``lj-stack`` command.
-
-- Added the value of ``g->gc.mmudata`` field to ``lj-gc`` output.
-
-- Fixed detection of inconsistent renames even in the presence of sunk
- values (:tarantool-issue:`4252`, :tarantool-issue:`5049`, :tarantool-issue:`5118`).
-
-- Fixed the order VM registers are allocated by LuaJIT frontend in case
- of ``BC_ISGE`` and ``BC_ISGT`` (:tarantool-issue:`6227`).
-
-- Fixed inconsistency while searching for an error function when
- unwinding a C-protected frame to handle a runtime error (an error
- in ``__gc`` handler).
-
-- ``string.char()`` builtin recording is fixed in case when no
- arguments are given (:tarantool-issue:`6371`, :tarantool-issue:`6548`).
-
-- Actually made JIT respect ``maxirconst`` trace limit while recording
- (:tarantool-issue:`6548`).
-
-Lua
-~~~
-
-- Fixed a bug when multibyte characters broke ``space:fselect()``
- output.
-
-- When an error is raised during encoding call results, the auxiliary
- lightuserdata value is not removed from the main Lua coroutine stack.
- Prior to the fix, it leads to undefined behavior during the next
- usage of this Lua coroutine (:tarantool-issue:`4617`).
-
-- Fixed Lua C API misuse, when the error is raised during call results
- encoding on unprotected coroutine and expected to be caught on the
- different one that is protected (:tarantool-issue:`6248`).
-
-- Fixed ``net.box`` error in case connections are frequently opened and
- closed (:tarantool-issue:`6217`).
-
-- Fixed incorrect handling of variable number of arguments in
- ``box.func:call()`` (:tarantool-issue:`6405`).
-
-- Fixed ``table.equals`` result when booleans compared (:tarantool-issue:`6386`).
-
-- Tap subtests inherit strict mode from parent (:tarantool-issue:`6868`).
-
-- Fixed the behavior of Tarantool console on ``SIGINT``. Now ``Ctrl+C``
- discards the current input and prints the new prompt (:tarantool-issue:`2717`).
-
-
-Triggers
-^^^^^^^^
-
-- Fixed the possibility of a crash in case when trigger removes itself.
-
-- Fixed the possibility of a crash in case someone destroys trigger
- when it’s yielding (:tarantool-issue:`6266`).
-
-SQL
-~~~
-
-- User-defined functions can now return ``VARBINARY`` to SQL as a
- result (:tarantool-issue:`6024`).
-
-- Fixed assert on a cast of ``DOUBLE`` value greater than -1.0 and less
- than 0.0 to ``INTEGER`` and ``UNSIGNED`` (:tarantool-issue:`6255`).
-
-- Removed spontaneous conversion from ``INTEGER`` to ``DOUBLE`` in a
- field of type ``NUMBER`` (:tarantool-issue:`5335`).
-
-- All arithmetic operations can now only accept numeric values
- (:tarantool-issue:`5756`).
-
-- Now function ``quote()`` returns an argument in case the argument
- is ``DOUBLE``. The same for all other numeric types. For types other
- than numeric, ``STRING`` is returned (:tarantool-issue:`6239`).
-
-- The ``TRIM()`` function now does not lose collation when executed
- with the keywords ``BOTH``, ``LEADING``, or ``TRAILING`` (:tarantool-issue:`6299`).
-
-- Now getting unsupported msgpack extension in SQL throws the correct error (:tarantool-issue:`6375`).
-
-- Now, when copying an empty string, an error will not be set
- unnecessarily (:tarantool-issue:`6157`, :tarantool-issue:`6399`).
-
-- Fixed wrong comparison between ``DECIMAL`` and large ``DOUBLE``
- values (:tarantool-issue:`6376`).
-
-- Fixed truncation of ``DECIMAL`` during implicit cast to ``INTEGER``
- in ``LIMIT`` and ``OFFSET``.
-
-- Fixed truncation of ``DECIMAL`` during implicit cast to ``INTEGER``
- when value is used in an index.
-
-- Fixed assert on a cast of ``DECIMAL`` value that is greater than -1.0
- and less than 0.0 to ``INTEGER`` (:tarantool-issue:`6485`).
-
-- The ``HEX()`` SQL built-in function no longer throws an assert when
- its argument consists of zero-bytes (:tarantool-issue:`6113`).
-
-- ``LIMIT`` is now allowed in ``ORDER BY`` where sort order is in both
- directions (:tarantool-issue:`6664`).
-
-- Fixed a memory leak in SQL during calling of user-defined function
- (:tarantool-issue:`6789`).
-
-- Fixed assertion or segmentation fault when ``MP_EXT`` received via ``net.box``
- (:tarantool-issue:`6766`).
-
-- Now the ``ROUND()`` function properly supports ``INTEGER`` and
- ``DECIMAL`` as the first argument (:tarantool-issue:`6988`).
-
-- Fixed a crash when a table inserted data into itself with an
- incorrect number of columns (:tarantool-issue:`7132`).
-
-Box
-~~~
-
-- Fixed ``log.cfg`` getting updated on ``box.cfg`` error (:tarantool-issue:`6086`).
-
-- Fixed the error message in an attempt to insert into a tuple the size
- of which equals to ``box.schema.FIELD_MAX`` (:tarantool-issue:`6198`).
-
-- We now check that all privileges passed to ``box.schema.grant`` are
- resolved (:tarantool-issue:`6199`).
-
-- Added iterator type checking and allow passing iterator as a
- ``box.index.{ALL,GT,...}`` directly (:tarantool-issue:`6501`).
-
-.. _2.10.0-datetime:
-
-Datetime
-~~~~~~~~
-
-- Intervals received after datetime arithmetic operations may be
- improperly normalized if the result was negative
-
- .. code-block:: lua
-
- tarantool> date.now() - date.now()
- ---
- - -1.000026000 seconds
- ...
-
- It means that two immediately called ``date.now()`` produce very close values,
- which difference should be close to 0, not 1 second (:tarantool-issue:`6882`).
-
-- Fixed a bug in datetime module when ``date:set{tzoffset=XXX}`` did
- not produce the same result with ``date.new{tzoffset=XXX}`` for the
- same set of attributes passed (:tarantool-issue:`6793`).
-
-HTTP client
-~~~~~~~~~~~
-
-- Fixed invalid headers after redirect (:tarantool-issue:`6101`).
-
-Mvcc
-~~~~
-
-- Fixed MVCC interaction with ephemeral spaces: TX manager now ignores
- such spaces (:tarantool-issue:`6095`).
-
-- Fixed a loss of tuple after a conflict exception (:tarantool-issue:`6132`).
-
-- Fixed a segmentation fault in update/delete of the same tuple (:tarantool-issue:`6021`).
-
-Net.box
-~~~~~~~
-
-- Changed the type of the error returned by ``net.box`` on timeout from
- ClientError to TimedOut (:tarantool-issue:`6144`).
-
-Recovery
-~~~~~~~~
-
-- When ``force_recovery`` cfg option is set, Tarantool is able to boot
- from ``snap``/``xlog`` combinations where ``xlog`` covers changes
- committed both before and after ``snap`` creation. For example,
- ``0...0.xlog``, covering everything up to ``vclock {1: 15}`` and
- ``0...09.snap``, corresponding to ``vclock {1: 9}`` (:tarantool-issue:`6794`).
-
-Tarantoolctl
-~~~~~~~~~~~~
-
-- Fixed the missing ``rocks`` keyword in ``tarantoolctl rocks`` help
- messages.
-
-Build
-~~~~~
-
-- Bumped Debian packages tarantool-common dependency to use luarocks 3
- (:tarantool-issue:`5429`).
-
-- Fixed an error when it was possible to have new Tarantool package
- (version >= 2.2.1) installed with pre-luarocks 3 tarantool-common
- package (version << 2.2.1), which caused rocks install to fail.
-
-- The Debian package does not depend on binutils anymore (:tarantool-issue:`6699`).
-
-- Fixed build errors with glibc-2.34 (:tarantool-issue:`6686`).
-
-- Changed size of alt. signal stack for ASAN needs.
-
-- Fixed build errors on arm64 with ``CMAKE_BUILD_TYPE=Debug``.
-
diff --git a/doc/release/2.10.1.rst b/doc/release/2.10.1.rst
deleted file mode 100644
index a5607f4931..0000000000
--- a/doc/release/2.10.1.rst
+++ /dev/null
@@ -1,352 +0,0 @@
-Tarantool 2.10.1
-================
-
-Released on 2022-08-08.
-
-* Release: :tarantool-release:`2.10.1`.
-* Tag: ``2.10.1``.
-
-
-Overview
---------
-
-.. warning::
-
- It is highly recommended to use Tarantool :doc:`v. 2.10.2 ` instead.
-
- The 2.10.1 release introduced a severe regression (:tarantool-issue:`7605`),
- which may pass testing with a low amount of data but impact a production server heavily.
- It may crash the process and, that is worse, feed incorrect data.
- The Tarantool development team has `decided `_
- to remove all the packages associated with this release.
-
-2.10.1 is the second
-:doc:`stable ` version of the 2.10 release series.
-It introduces 17 improvements and resolves 52 bugs since 2.10.0.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report it `__ on GitHub.
-
-Notable changes are:
-
-- Interactive transactions are now possible in remote binary consoles.
-- Improved the string representation of datetime intervals.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade `
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-Core
-~~~~
-
-- **[Breaking change]** Conflicted transactions now throw the
- ``Transaction has been aborted by conflict`` error on any CRUD
- operations until they are either rolled back (which will return no
- error) or committed (which will return the same error) (:tarantool-issue:`7240`).
-- Read-view transactions now become conflicted on attempts to perform
- DML statements immediately. Previously, this was detected only on the
- transaction preparation stage, that is, when calling ``box.commit``
- (:tarantool-issue:`7240`).
-- Interactive transactions are now possible in remote binary consoles
- (:tarantool-issue:`7413`).
-- It is now possible to omit ``space`` in declarations of foreign keys
- that refer to the same space (:tarantool-issue:`7200`).
-
-Datetime
-~~~~~~~~
-
-- Improved the string representation of datetime intervals. Now
- nanoseconds aren’t converted and attached to seconds; the intervals
- are displayed “as is”. Example:
-
- .. code:: lua
-
- local ival = date.interval.new{year = 12345, hour = 48, min = 3, sec = 1,
- nsec = 12345678}
- print(tostring(ival))
-
- Before:
-
- ::
-
- '+12345 years, 48 hours, 3 minutes, 1.012345678 seconds'
-
- Now:
-
- ::
-
- '+12345 years, 48 hours, 3 minutes, 1 seconds, 12345678 nanoseconds'
-
-Decimal
-~~~~~~~
-
-- Added C module API for decimals (:tarantool-issue:`7228`).
-- Added Lua/C accessors for decimals into the module API (:tarantool-issue:`7228`).
-
-Tuple
-~~~~~
-
-- Added the ``box_tuple_field_by_path()`` function into the module API.
- It allow the access to tuple fields from C code using a JSON path
- (:tarantool-issue:`7228`).
-
-Build
-~~~~~
-
-- Fedora 30, 31, 32, and 33 are no longer supported.
-- Ubuntu 20.10 (Groovy Gorilla) and 21.04 (Hirsute Hippo) are no longer
- supported.
-- Updated libcurl to version 7.84.0.
-- Updated OpenSSL used for static builds to version 1.1.1q.
-- Ubuntu 21.10 (Impish Indri) is no longer supported.
-- Updated Ncurses used for static builds to version 6.3-20220716 .
-- Updated Readline used for static builds to version 8.0p1.
-- Updated libyaml to the version with fixed stack overflows.
-- Updated zstd to version 1.5.2.
-- Updated zlib used for static builds to version 1.2.12.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Improved validation of incoming tuples. Now tuples coming over the
- network can’t contain malformed decimals, uuids, or datetime values
- (:tarantool-issue:`6857`).
-
-- Fixed a bug in the net.box connector because of which a client could
- fail to close its connection when receiving a shutdown request from
- the server. This could lead to the server hanging on exit (:tarantool-issue:`7225`).
-
-- Fixed a crash and possible undefined behaviour when using ``scalar``
- and ``number`` indexes over fields containing both decimals and
- double ``Inf`` or ``NaN``.
-
- For vinyl spaces, the above conditions could lead to wrong ordering
- of indexed values. To fix the issue, recreate the indexes on such
- spaces following this
- `guide `__
- (:tarantool-issue:`6377`).
-
-- Fixed a bug because of which a net.box connection was not properly
- terminated when the process had a child (for example, started with
- ``popen``) sharing the connection socket fd. The bug could lead to a
- server hanging on exit while executing the graceful shutdown protocol
- (:tarantool-issue:`7256`).
-
-- Removed an assertion on ``fiber_wakeup()`` calls with dead fibers in
- debug builds. Such behavior was inconsistent with release builds, in
- which the same calls were allowed (:tarantool-issue:`5843`).
-
-- Fixed the ``exclude_null`` index option not working for multikey and
- JSON indexes (:tarantool-issue:`5861`).
-
-- Fixed the performance degradation of fiber backtrace collection after
- the backtrace rework (:tarantool-issue:`7207`).
-
-- Fixed a hang when a synchronous request was issued from a net.box
- ``on_connect`` or ``on_schema_reload`` trigger. Now an error is
- raised instead (:tarantool-issue:`5358`).
-
-- Fixed a crash that could happen on x86 systems without the ``RDTSCP``
- instruction (:tarantool-issue:`5869`).
-
-- Fixed a bug that allowed to access indexed fields of nested tuples
- with ``[*]`` in Lua (:tarantool-issue:`5226`).
-
-- Fixed the behavior of ``space_object:fselect()`` on binary data
- (:tarantool-issue:`7040`).
-
-- Fixed Tarantool not being able to recover from old snapshots when
- ``box.cfg.work_dir`` and ``box.cfg.memtx_dir`` were both set
- (:tarantool-issue:`7232`).
-
-- Fixed Tarantool terminations on error messages with invalid UTF-8
- sequences (:tarantool-issue:`6781` and :tarantool-issue:`6934`).
-
-- Fixed a bug when the ``Transaction is active at return from function``
- error was overwriting expression evaluation errors in case the
- expression begins a transaction (:tarantool-issue:`7288`).
-
-- Added type checking for options in net.box’s remote queries and
- connect method. Now graceful errors are thrown in case of incorrect
- options (:tarantool-issue:`6063`, :tarantool-issue:`6530`).
-
-- Fixed ``space_object:format()`` and ``space_object.foreign_key``
- returning incorrect numbers of foreign key fields (:tarantool-issue:`7350`).
-
-- Fixed the foreign key check on ``space_object:truncate()`` calls
- (:tarantool-issue:`7309`).
-
-- Fixed a crash when ``box.stat.net.thread[i]`` is called with invalid
- ``i`` values (:tarantool-issue:`7196`).
-
-- Fixed a low-probability stack overflow bug in the qsort
- implementation.
-
-Memtx
-~~~~~
-
-- Fixed the ability to perform read-only operations in conflicting
- transactions in memtx, which led to spurious results (:tarantool-issue:`7238`).
-- Fixed false assertion on repeatable ``replace`` with the memtx
- transaction manager enabled (:tarantool-issue:`7214`).
-- Fixed false transaction conflict on repeatable ``insert``/``upsert``
- with the memtx transaction manager enabled (:tarantool-issue:`7217`).
-- Fixed dirty reads in the ``GT`` iterator of HASH indexes (:tarantool-issue:`7477`).
-- Fixed phantom reads in reverse iterators (:tarantool-issue:`7409`).
-- Fixed ``select`` with ``LE`` iterator in **memtx** **TREE** index
- returning deleted tuple (:tarantool-issue:`7432`).
-- Fixed incorrect handling of corner cases gap tracking in transaction
- manager (:tarantool-issue:`7375`).
-- Fixed a bug in the memtx hash index implementation that could lead to
- uncommitted data written to a snapshot file (:tarantool-issue:`7539`).
-
-Vinyl
-~~~~~
-
-- Fixed a bug in the vinyl upsert squashing optimization that could
- lead to a segmentation fault error (:tarantool-issue:`5080`).
-- Fixed a bug in the vinyl garbage collector. It could skip stale
- tuples stored in a secondary index if upsert operations were used on
- the space before the index was created (:tarantool-issue:`3638`).
-- Fixed a bug in the vinyl read iterator that could result in a
- significant performance degradation of range select requests in the
- presence of an intensive write workload (:tarantool-issue:`5700`).
-- Explicitly disabled the hot standby mode for vinyl. Now an attempt to
- enable the hot standby mode in case the master instance has vinyl
- spaces results in an error. Before this change, the behavior was
- undefined (:tarantool-issue:`6565`).
-
-Replication
-~~~~~~~~~~~
-
-- Added the logging of the error reason on a replica in case when the
- master didn’t send a greeting message (:tarantool-issue:`7204`).
-- Fixed replication being stuck occasionally for no obvious reasons.
-- Fixed a possible split-brain when the old synchro queue owner might
- finalize the transactions in the presence of the new owner (:tarantool-issue:`5295`).
-- Improved the detection of possible split-brain situations, for
- example, when multiple leaders were working independently due to
- manually lowered quorum. Once a node discovers that it received some
- foreign data, it immediately stops replication from such a node with
- an ``ER_SPLIT_BRAIN`` error (:tarantool-issue:`5295`).
-- Fixed a false positive split-brain error after ``box.ctl.demote()``
- (:tarantool-issue:`7286`).
-- Fixed a bug when followers with ``box.cfg.election_mode`` turned on
- did not notice the leader hang due to a long request, such as a
- ``select{}`` from a large space or a ``pairs`` iteration without
- yields between loop cycles (:tarantool-issue:`7512`).
-
-LuaJIT
-~~~~~~
-
-Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`6548` and :tarantool-issue:`7230`).
-In the scope of this activity, the following issues have been resolved:
-
-- Fixed emitting for fuse load of constant in GC64 mode (:tarantool-issue:`4095`,
- :tarantool-issue:`4199`, :tarantool-issue:`4614`).
-
-- Now initialization of zero-filled struct is compiled (:tarantool-issue:`4630`,
- :tarantool-issue:`5885`).
-
-- Actually implemented ``maxirconst`` option for tuning JIT compiler.
-
-- Fixed JIT stack of Lua slots overflow during recording for metamethod
- calls.
-
-- Fixed bytecode dump unpatching for JLOOP in up-recursion compiled
- functions.
-
-- Fixed FOLD rule for strength reduction of widening in cdata indexing.
-
-- Fixed ``string.char()`` recording without arguments.
-
-- Fixed ``print()`` behaviour with the reloaded default metatable for
- numbers.
-
-- ``tonumber("-0")`` now saves the sign of number for conversion.
-
-- ``tonumber()`` now gives predictable results for negative non-base-10
- numbers.
-
-- Fixed write barrier for ``debug.setupvalue()`` and
- ``lua_setupvalue()``.
-
-- Fixed conflict between 64 bit lightuserdata and ITERN key for ARM64.
-
-- Fixed emitting assembly for HREFK on ARM64.
-
-- Fixed pass-by-value struct in FFI calls on ARM64.
-
-- ``jit.p`` now flushes and closes output file after run, not at
- program exit.
-
-- Fixed ``jit.p`` profiler interaction with GC finalizers.
-
-- Fixed the case for partial recording of vararg function body with the
- fixed number of result values in with ``LJ_GC64`` (i.e. ``LJ_FR2``
- enabled) (:tarantool-issue:`7172`).
-
-- Added ``/proc/self/exe`` symlink resolution to the symtab module to
- obtain the ``.symtab`` section for the Tarantool executable.
-
-- Introduced stack sandwich support to sysprof’s parser (:tarantool-issue:`7244`).
-
-- Disabled proto and trace information dumpers in sysprof’s default
- mode. Attempts to use them lead to a segmentation fault due to an
- uninitialized buffer (:tarantool-issue:`7264`).
-
-- Fixed handling of errors during trace snapshot restore.
-
-Lua
-~~~
-
-- The ``fiber_obj:info()`` now correctly handles its options (:tarantool-issue:`7210`).
-- Fixed a bug when Ctrl+C doesn’t discard the multiline input
- (:tarantool-issue:`7109`).
-
-SQL
-~~~
-
-- Fixed the creation of ephemeral space format in ``ORDER BY``
- (:tarantool-issue:`7043`).
-- The result type of arithmetic operations between two unsigned values
- is now ``INTEGER`` (:tarantool-issue:`7295`).
-- Fixed a bug with the ``ANY`` type in the ephemeral space format in
- ``ORDER BY`` (:tarantool-issue:`7043`).
-- Truncation of a space no longer corrupts prepared statements
- (:tarantool-issue:`7358`).
-
-Datetime
-~~~~~~~~
-
-- Fixed a bug when ``date:set{hour=nil,min=XXX}`` did not retain the
- original ``hour`` value (:tarantool-issue:`7298`).
-- Introduced the validation of incoming data at the moment messagepack
- is converted to datetime (:tarantool-issue:`6723`).
-
-HTTP client
-~~~~~~~~~~~
-
-- Enabled the automatic detection of system CA certificates in the
- runtime (:tarantool-issue:`7372`). It was disabled in 2.10.0, which led to the
- inability to use HTTPS without the ``verify_peer = false`` option.
-
-
-Build
-~~~~~
-
-- Fixed a build failure with gcc if libpbf is installed (:tarantool-issue:`7292`).
-- Fixed the static build on Mac OS 11 and newer (:tarantool-issue:`7459`).
diff --git a/doc/release/2.10.2.rst b/doc/release/2.10.2.rst
deleted file mode 100644
index 1c5c331afa..0000000000
--- a/doc/release/2.10.2.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-Tarantool 2.10.2
-================
-
-Released on 2022-09-01.
-
-* Release: :tarantool-release:`2.10.2`.
-* Tag: ``2.10.2``.
-
-Overview
---------
-
-2.10.2 is the third
-:doc:`stable ` version of the 2.10 release series.
-It introduces 1 improvement and resolves 8 bugs since 2.10.1.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report it `__ on GitHub.
-
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade `
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-Core
-~~~~
-
-- Certain internal fibers, such as the connection’s worker fiber, vinyl
- fibers, and some other fibers, cannot be cancelled from the Lua
- public API anymore (:tarantool-issue:`7473`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a crash of secondary indexes without hints (a critical regression found in 2.10.1)
- (:tarantool-issue:`7605`).
-- Fixed a possible crash on concurrent ``fiber_object:join()``
- (:tarantool-issue:`7489`).
-- Fixed a potential nil dereference and a crash in case of an active
- log rotation during the program exit stage (:tarantool-issue:`4450`).
-- Fixed crashes and undefined behaviour of triggers clearing other
- triggers (:tarantool-issue:`4264`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed ``box.info.replication[id].downstream.lag`` growing
- indefinitely on a server when it’s not writing any new transactions
- (:tarantool-issue:`7581`).
-
-Box
-~~~
-
-- Fixed multiline commands being saved to ``~/.tarantool_history`` as
- separate lines (:tarantool-issue:`7320`).
-- Fixed inheritance of field options in indexes when index parts are
- specified the old Tarantool 1.6 style: ``{, , ...}``
- (:tarantool-issue:`7614`).
-- Fixed unauthorized inserts into the ``_truncate`` space (:tarantool-sec-issue:`5`).
diff --git a/doc/release/2.10.3.rst b/doc/release/2.10.3.rst
deleted file mode 100644
index 3a1b9c1368..0000000000
--- a/doc/release/2.10.3.rst
+++ /dev/null
@@ -1,126 +0,0 @@
-Tarantool 2.10.3
-================
-
-Released on 2022-09-30.
-
-* Release: :tarantool-release:`2.10.3`.
-* Tag: ``2.10.3``.
-
-Overview
---------
-
-2.10.3 is the fourth
-:doc:`stable ` version of the 2.10 release series.
-It introduces 2 improvements and resolves 19 bugs since 2.10.2.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report it `__ on GitHub.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade `
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-Build
-~~~~~
-
-- RedOS 7.3 is now supported.
-- Added the ``-DENABLE_HARDENING=ON/OFF`` CMake option that enables
- hardening against memory corruption attacks (:tarantool-issue:`7536`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a bug introduced in Tarantool 2.10.2: log messages could be
- written to data files thus causing data corruption. The issue was
- fixed by reverting the fix for :tarantool-issue:`4450`.
-- Switched from MT-Unsafe ``strerror()`` to MT-Safe ``strerror_r()``.
- The usage of the unsafe function could result in corrupted error
- messages.
-- Fixed a bug when a single JSON update couldn’t insert and update a
- field of a map or an array in two sequential calls. It would either
- crash or return an error (:tarantool-issue:`7705`).
-
-Memtx
-~~~~~
-
-- Fixed incorrect handling of transaction conflicts in full scans by
- HASH indexes (:tarantool-issue:`7493`).
-- Fixed ``use after free`` that could occur in the transaction manager
- in certain states (:tarantool-issue:`7449`).
-- Fixed possible phantom reads with ``get`` on TREE indexes containing
- nullable parts (:tarantool-issue:`7685`).
-- Fixed an inconsistency in ``index:random`` in the context of
- transaction management (:tarantool-issue:`7670`).
-- Fixed unserializable reads tracked incorrectly after transaction
- rollbacks (:tarantool-issue:`7343`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed a bug when a fiber committing a synchronous transaction could
- hang if the instance got a term bump during that or its synchro-queue
- was fenced in any other way (:tarantool-issue:`7253`).
-- Fixed master occasionally deleting xlogs needed by replicas even
- without a restart (:tarantool-issue:`7584`).
-
-Raft
-~~~~
-
-- Fixed a bug when ``box.ctl.promote()`` could hang and bump thousands
- of terms in a row if called on more than one node at the same time
- (part of :tarantool-issue:`7253`).
-- Fixed a bug when a node with ``election_mode='voter'`` could hang in
- ``box.ctl.promote()`` or become a leader (part of :tarantool-issue:`7253`).
-- Fixed a bug when a replicaset could be split into parts if a node
- voted for another instance while having local WAL writes unfinished
- (part of :tarantool-issue:`7253`).
-
-Lua
-~~~
-
-Merger
-^^^^^^
-
-- Fixed ``use after free`` that could occur during iteration over
- ``merge_source:pairs()`` or ``merger:pairs()`` (:tarantool-issue:`7657`).
-
-Popen
-^^^^^
-
-- Fixed a race condition in ``:signal()`` on Mac OS 12
- and newer (:tarantool-issue:`7658`).
-
-Box
-~~~
-
-- Fixed a bug when ``fiber.yield()`` might break the execution of a
- shutdown trigger (:tarantool-issue:`7434`).
-- Fixed a possible high CPU usage caused by shutdown triggers
- (:tarantool-issue:`6801`).
-
-Synchro
-~~~~~~~
-
-- Fixed assertions in debug builds and undefined behaviour in release
- builds when simultaneous elections started or another instance was
- promoted while an instance was acquiring or releasing the synchro
- queue (:tarantool-issue:`7086`).
-
-Uri
-~~~
-
-- Fixed a bug in the URI parser: tarantoolctl could not connect when
- the host name was skipped (:tarantool-issue:`7479`).
diff --git a/doc/release/2.10.4.rst b/doc/release/2.10.4.rst
deleted file mode 100644
index e7c181f3c7..0000000000
--- a/doc/release/2.10.4.rst
+++ /dev/null
@@ -1,204 +0,0 @@
-Tarantool 2.10.4
-================
-
-Released on 2022-11-11.
-
-* Release: :tarantool-release:`2.10.4`.
-* Tag: ``2.10.4``.
-
-Overview
---------
-
-2.10.4 is the fifth
-:doc:`stable ` version of the 2.10 release series.
-It introduces 5 improvements and resolves 28 bugs since 2.10.3.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report it `__ on GitHub.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade `
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-.. note::
-
- Now the empty string, ``n``, ``nu``, ``s``, and ``st`` (that is, leading parts of
- ``num`` and ``str``) are not accepted as valid field types (:tarantool-issue:`5940`).
- :ref:`This instruction ` will help you upgrade
- to Tarantool 2.10.4 and newer if you've previously used these values in field types.
-
-Functionality added or changed
-------------------------------
-
-Core
-~~~~
-
-- The JSON log format can now be used with the syslog logger (:tarantool-issue:`7860`).
-
-SQL
-~~~
-
-- New rules are applied to determine the type of CASE operation
- (:tarantool-issue:`6990`).
-- Now ``NULLIF()`` call results have the same type as its first
- argument (:tarantool-issue:`6989`).
-
-Build
-~~~~~
-
-- Diagnostics now provide relative file paths instead of absolute ones
- (:tarantool-issue:`7808`).
-- Now the compiler info displayed in ``tarantool.build.compiler`` and
- ``tarantool --version`` shows the ID and the version of the compiler
- that was used to build Tarantool. The output has the format
- ``${CMAKE_C_COMPILER_ID}-${CMAKE_C_COMPILER_VERSION}``, for example,
- ``Clang-14.0.0.14000029`` (:tarantool-issue:`7888`).
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed creation of spaces with a constraint and a foreign key on the
- same field (:tarantool-issue:`7645`).
-- Now the same error is returned when a password or a username provided
- during authorization is incorrect. This prevents user enumeration
- (:tarantool-sec-issue:`16`).
-- Added boundary checking for ``getenv()`` return values. Also, for
- security reasons, Tarantool code now copies these values instead of
- using them directly (:tarantool-issue:`7797`).
-- ``os.getenv()`` now always returns values of sane size (:tarantool-issue:`7797`).
-- Fixed the ``BEGIN``, ``COMMIT``, and ``ROLLBACK`` counters in the
- ``box.stat()`` output. Now they show the number of started,
- committed, and rolled back transactions (:tarantool-issue:`7583`).
-- Fixed a crash that could occur during log rotation and application
- exit (:tarantool-issue:`4450`).
-- Fixed a possible buffer overflow in ``mp_decode_decimal()`` and
- ``decimal_unpack()`` when an input string was too long (:tarantool-sec-issue:`17`).
-- Fixed a bug in the MsgPack library that could lead to a failure to
- detect invalid MsgPack input and, as a result, an out-of-bounds read
- (:tarantool-sec-issue:`18`).
-- If an error occurs during a snapshot recovery, its log now contains
- information about the row that caused the error (:tarantool-issue:`7917`).
-
-Memtx
-~~~~~
-
-- Fixed possible loss of committed tuples in secondary indexes with
- MVCC transaction manager (:tarantool-issue:`7712`).
-- Fixed an assertion being triggered on ``space:drop`` (:tarantool-issue:`7757`).
-- Fixed possible violation of the secondary index uniqueness with the
- transaction manager enabled (:tarantool-issue:`7761`).
-
-LuaJIT
-~~~~~~
-
-- Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`7230`). In the scope
- of this activity, the following issues have been resolved:
-
- - Fix overflow check in ``unpack()`` optimized by a compiler.
- - Fix recording of ``tonumber()`` with cdata argument for failed
- conversions (:tarantool-issue:`7655`).
- - Fix concatenation operation on cdata. It always raises an error
- now.
-
-- Fixed the Lua stack dump command (``lj-stack``) to support Python 2:
- unpacking arguments within the list initialization is not supported
- in it (:tarantool-issue:`7458`).
-
-Lua
-~~~
-
-- Fixed a crash in ``msgpack.decode`` in case the input string contains
- an invalid MsgPack header ``0xc1`` (:tarantool-issue:`7818`).
-
-SQL
-~~~
-
-- Fixed an assertion when ``INDEXED BY`` was used with an index that
- was at least third in a space (:tarantool-issue:`5976`).
-- Fixed a crash that could occur when selecting tuples with more fields
- than specified in the space format (:tarantool-issue:`5310`, :tarantool-issue:`4666`).
-- Fixed an assertion in ``JOIN`` when using an unsupported index
- (:tarantool-issue:`5678`).
-- Creating indexes on newly added fields no longer leads to assertions
- in ``SELECT`` queries (:tarantool-issue:`5183`).
-- Re-running a prepared statement that generates new auto-increment IDs
- no longer causes an error (:tarantool-issue:`6422`).
-- An error is now thrown if too many indexes were created in SQL
- (:tarantool-issue:`5526`).
-
-Box
-~~~
-
-- Revoked execute access rights to the ``LUA`` function from the public
- role (:tarantool-sec-issue:`14`).
-- Now the empty string, ``n``, ``nu``, ``s``, and
- ``st`` (that is, leading parts of ``num`` and ``str``) are not
- accepted as valid field types (:tarantool-issue:`5940`).
- :ref:`This instruction ` will help you upgrade
- to Tarantool 2.10.4 and newer if you've previously used these values in field types.
-
-- Fixed a bug when ``type = box.NULL`` in ``key_def.new()`` resulted in
- ``type = 'unsigned'`` (:tarantool-issue:`5222`).
-- The ``_vfunc`` system space now has the same format as ``_func``
- (:tarantool-issue:`7822`).
-- Fixed a crash on recovery from snapshots that don’t include system
- spaces (:tarantool-issue:`7800`).
-- Fixed a bug that occurred when a foreign key was created together
- with fields that participate in that foreign key (:tarantool-issue:`7652`).
-
-Datetime
-~~~~~~~~
-
-- Fixed interval arithmetic for boundaries crossing DST (:tarantool-issue:`7700`).
-
- Results of datetime arithmetic operations could get a different
- timezone if the DST boundary has been crossed during the operation:
-
- .. code-block:: tarantoolsession
-
- tarantool> datetime.new{year=2008, month=1, day=1,
- tz='Europe/Moscow'} +
- datetime.interval.new{month=6}
- ---
- - 2008-07-01T01:00:00 Europe/Moscow
- ...
-
- Now we resolve ``tzoffset`` at the end of operation if ``tzindex`` is
- not 0.
-
-- Fixed subtractions for datetimes with different timezones (:tarantool-issue:`7698`).
-
- Previously, the timezone difference (``tzoffset``) was ignored in
- datetime subtraction operations:
-
- .. code-block:: tarantoolsession
-
- tarantool> datetime.new{tz='MSK'} - datetime.new{tz='UTC'}
- ---
- - +0 seconds
- ...
- tarantool> datetime.new{tz='MSK'}.timestamp -
- datetime.new{tz='UTC'}.timestamp
- ---
- - -10800
- ...
-
- Now this difference is accumulated in the minute component of the
- resulting interval:
-
- .. code-block:: tarantoolsession
-
- tarantool> datetime.new{tz='MSK'} - datetime.new{tz='UTC'}
- ---
- - -180 minutes
- ...
diff --git a/doc/release/2.10.5.rst b/doc/release/2.10.5.rst
deleted file mode 100644
index 701e639fb8..0000000000
--- a/doc/release/2.10.5.rst
+++ /dev/null
@@ -1,250 +0,0 @@
-Tarantool 2.10.5
-================
-
-Released on 2023-02-20.
-
-* Release: :tarantool-release:`2.10.5`.
-* Tag: ``2.10.5``.
-
-Overview
---------
-
-2.10.5 is the sixth
-:doc:`stable ` version of the 2.10 release series.
-It introduces 5 improvements and resolves 44 bugs since 2.10.4.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report it `__ on GitHub.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade `
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-Core
-~~~~
-
-- Introduced the ``_vspace_sequence`` system space view of the
- ``_space_sequence`` system space (:tarantool-issue:`7858`).
-- The log produced during ``box.cfg{}`` now contains the build target
- triplet (for example, ``Linux-x86_64-RelWithDebInfo``).
-
-Build
-~~~~~
-
-- OpenSUSE 15.1 and 15.2 are no longer supported.
-- Updated libcurl to version 7.87.0 (:tarantool-issue:`8150`).
-- Alpine Linux 3.16 is now supported.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a bug in fiber switching that could lead to a segmentation
- fault error on AArch64 systems (:tarantool-issue:`7523`, :tarantool-issue:`7985`).
-
-- Fixed wrong CPU architecture reported in ``tarantool.build.target``
- on M1/M2 Macs (:tarantool-issue:`7495`).
-
-- Fixed a bug when fields could be removed from a table stored in a
- variable when a logging function was called on this variable (for
- example, ``log.info(a)``) (:tarantool-issue:`3853`).
-
-- Fixed a logging bug: when logging tables with fields that have
- reserved internal names (such as ``pid``) in the plain log format,
- such fields weren’t logged (:tarantool-issue:`3853`).
-
-- Added the ``message`` field when logging tables without such field in
- the JSON log format (:tarantool-issue:`3853`).
-
-- Fixed an assertion on malformed JSON message written to the log
- (:tarantool-issue:`7955`).
-
-- Fixed the bug because of which ``box.session.on_auth`` triggers were
- not invoked if the authenticated user didn’t exist (:tarantool-issue:`8017`).
-
-- Eliminated the possibility of user enumeration by analyzing errors
- sent in reply to malformed authentication requests (:tarantool-sec-issue:`21`).
-
-- Fixed a bug when Tarantool could execute random bytes as a Lua code
- after fork on systems with a glibc version earlier than 2.29
- (:tarantool-issue:`7886`).
-
-- A referenced space or a function being used in a constraint can now
- be dropped in the same transaction with the referencing constraint or
- space (:tarantool-issue:`7339`).
-
-- Fixed Tarantool being stuck during a crash on macOS (:tarantool-issue:`8023`).
-
-- Fixed a bug that prevented collection of crash reports (:tarantool-issue:`8083`).
-
-- Fixed a crash in ``net.box`` that happened if the error message
- raised by the server contained ``printf`` formatting specifiers, such
- as ``%d`` or ``%s`` (:tarantool-issue:`8043`).
-
-- Fixed read-only statements executing successfully in transactions
- that were aborted by yield or timeout. Now, read-only statements fail
- in this case, just like write statements (:tarantool-issue:`8123`).
-
-- Fixed a transaction conflict reported mistakenly when a key was
- deleted twice with MVCC engine enabled (:tarantool-issue:`8122`).
-
-- ``net.box`` connections now contain information about sequences used
- by remote spaces (:tarantool-issue:`7858`).
-
-- Fixed a crash that happened if a transaction was aborted (for
- example, by fiber yield with MVCC off) while the space’s
- ``on_replace`` or ``before_replace`` trigger was running (:tarantool-issue:`8027`).
-
-- Fixed a possible crash when attempting to update the same field in
- ``tuple/space/index:update()`` more than once (:tarantool-issue:`8216`).
-
-- Fixed empty BITSET indexes crashing on ``len`` calls (:tarantool-issue:`5809`).
-
-- Fixed a crash when functional indexes were used with very specific
- chunk size (:tarantool-issue:`6786`).
-
-Memtx
-~~~~~
-
-- Fixed a possible repeatable read violation with reverse iterators
- (:tarantool-issue:`7755`).
-- Fixed a crash on series of transactions in memtx (:tarantool-issue:`7756`).
-- Fixed a phantom read that could happen after reads from different
- indexes followed by a rollback (:tarantool-issue:`7828`).
-- Fixed an assert in the MVCC engine (:tarantool-issue:`7945`).
-- Fixed an assertion failure in MVCC during statement preparation
- (:tarantool-issue:`8104`).
-- Fixed possible loss of a committed tuple after rollback of a prepared
- transaction (:tarantool-issue:`7930`).
-
-Vinyl
-~~~~~
-
-- Fixed a bug that could result in ``select()`` skipping an existing
- tuple after a rolled back ``delete()`` (:tarantool-issue:`7947`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed local space writes failing with error ``Found uncommitted sync
- transactions from other instance with id 1`` when synchronous
- transaction queue belongs to another instance and isn’t empty
- (:tarantool-issue:`7592`).
-
-- Fixed an assertion failure on master when a replica resubscribes with
- a smaller vclock than previously seen (:tarantool-issue:`5158`).
-
-- A warning is now raised when ``replica_id`` is changed by a
- ``before_replace`` trigger while adding a new replica. Previously,
- there was an assertion checking this (:tarantool-issue:`7846`).
-
-- Fixed a segmentation fault that happened when a ``before_replace``
- trigger set on space ``_cluster`` returned nil (:tarantool-issue:`7846`).
-
-- Fixed possible transaction conflict errors on applying a replication
- stream (:tarantool-issue:`8121`).
-
-Raft
-~~~~
-
-- Fixed an assertion failure in case when an election candidate is
- reconfigured to a voter during an ongoning WAL write (:tarantool-issue:`8169`).
-- Fixed nodes configured with ``election_mode = "manual"`` sometimes
- increasing the election term excessively after their promotion
- (:tarantool-issue:`8168`).
-
-LuaJIT
-~~~~~~
-
-Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`7230`). In the scope of
-this activity, the following issues have been resolved:
-
-- Fix ``io.close()`` for already closed standard output.
-- Fix trace execution and stitching inside vmevent handler (:tarantool-issue:`6782`).
-- Fixed ``emit_loadi()`` on x86/x64 emitting xor between condition
- check and jump instructions.
-- Fix stack top for error message when raising the OOM error (:tarantool-issue:`3840`).
-- Enabled external unwinding on several LuaJIT platforms. Now it is
- possible to handle ABI exceptions from Lua code (:tarantool-issue:`6096`).
-- Disabled math.modf compilation due to its rare usage and difficulties
- with proper implementation of the corresponding JIT machinery.
-- Fixed inconsistent behaviour on signed zeros for JIT-compiled unary
- minus (:tarantool-issue:`6976`).
-- Fixed ``IR_HREF`` hash calculations for non-string GC objects for
- GC64.
-- Fixed assembling of type-check-only variant of ``IR_SLOAD``.
-- Enabled the platform profiler for Tarantool built with GC64 mode
- (:tarantool-issue:`7919`).
-- Added full-range lightuserdata support to the ``luajit-gdb.py``
- extension (:tarantool-issue:`6481`).
-
-Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`8069`). In the scope of
-this activity, the following issues have been resolved:
-
-- Fixed loop realigment for dual-number mode
-- Fixed os.date() for wider libc strftime() compatibility.
-- Fix interval parsing for sysprof for dual-number mode.
-
-Lua
-~~~
-
-- Fixed alias detection in the YAML serializer in case the input
- contains objects that implement the ``__serialize`` meta method
- (:tarantool-issue:`8240`).
-
-SQL
-~~~
-
-- Fixed a bug when collation could change the type of a built-in
- function argument (:tarantool-issue:`7992`).
-- Fixed several bugs happening because of improper handling of
- ``malloc()`` failures (:tarantool-sec-issue:`65`, :tarantool-sec-issue:`66`,
- :tarantool-sec-issue:`67`, :tarantool-sec-issue:`68`).
-
-Box
-~~~
-
-- Fixed a possible error during rollback of read-only transaction
- statements (:tarantool-issue:`5501`).
-- Fixed a bug in ``space_object:create_index()`` when ``collation``
- option is not set. Now it is inherited from the space format
- (:tarantool-issue:`5104`).
-- Eliminated a code injection vulnerability in the processing of the
- ``replication_synchro_quorum`` ``box.cfg()`` option (:tarantool-sec-issue:`20`,
- `GHSA-74jr-2fq7-vp42 `__).
-
-Datetime
-~~~~~~~~
-
-- Fixed a segmentation fault that happened when the value passed to the
- ``%f`` modifier of ``datetime_object:format()`` was too big (:tarantool-sec-issue:`31`).
-
-Fiber
-~~~~~
-
-- Fixed the assertion fail in ``cord_on_yield`` (:tarantool-issue:`6647`).
-
-Log
-~~~
-
-- Fixed an incorrect facility value in syslog on Alpine and OpenBSD
- (:tarantool-issue:`8269`).
-
-.. _build-1:
-
-Build
-~~~~~
-
-- Fixed ``-Werror`` build fail on Clang 15 (:tarantool-issue:`8110`).
diff --git a/doc/release/2.10.6.rst b/doc/release/2.10.6.rst
deleted file mode 100644
index ede32d19a7..0000000000
--- a/doc/release/2.10.6.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-Tarantool 2.10.6
-================
-
-Released on 2023-03-22.
-
-* Release: :tarantool-release:`2.10.6`.
-* Tag: ``2.10.6``.
-
-Overview
---------
-
-2.10.6 is the 7th
-:doc:`stable ` version of the 2.10 release series.
-It resolves 3 bugs since 2.10.5.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report
-it `__ on GitHub.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade ` using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed various bugs related to unsafe (i.e., coming from an unknown
- source) decoding and validating of MsgPack extensions (:tarantool-sec-issue:`73`).
-
-LuaJIT
-~~~~~~
-
-Backported patches from the vanilla LuaJIT trunk (:tarantool-issue:`8069`).
-The following issues were fixed as part of this activity:
-
-- Fixed successful ``math.min/math.max`` call with no args (:tarantool-issue:`6163`).
-- Fixed inconsistencies in ``math.min/math.max`` calls with a NaN arg
- (:tarantool-issue:`6163`).
-- Fixed ``pcall()`` call without arguments on arm64.
-- Fixed assembling of ``IR_{AHUV}LOAD`` specialized to boolean for
- aarch64.
-- Fixed constant rematerialization on arm64.
-
-Box
-~~~
-
-- Fixed a bug where ``box.cfg.force_recovery`` doesn’t work when there
- is no user spaces in a snapshot (:tarantool-issue:`7974`).
diff --git a/doc/release/2.10.7.rst b/doc/release/2.10.7.rst
deleted file mode 100644
index 72972f0a9d..0000000000
--- a/doc/release/2.10.7.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-Tarantool 2.10.7
-================
-
-Released on 2023-05-24.
-
-* Release: :tarantool-release:`2.10.7`.
-* Tag: ``2.10.7``.
-
-Overview
---------
-
-2.10.7 is the 8th
-:doc:`stable ` version of the 2.10 release series.
-It resolves 17 bugs since 2.10.6.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report
-it `__ on GitHub.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade ` using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a crash that could happen when preparing a crash report on macOS
- (:tarantool-issue:`8445`).
-- Fixed an integer overflow issue in ``net.box`` (:tarantool-sec-issue:`121`).
-- An ``IPROTO_EVENT`` packet now has the same sync number as the last
- corresponding ``IPROTO_WATCH`` request (:tarantool-issue:`8393`).
-- Fixed a bug because of which a dirty (not committed to WAL) DDL record could
- be written to a snapshot and cause a recovery failure (:tarantool-issue:`8530`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed a bug that occurred on applier failure: a node could start an election
- without having a quorum to do this (:tarantool-issue:`8433`).
-- Now if a join fails with some non-critical error, such as ``ER_READONLY``,
- ``ER_ACCESS_DENIED``, or something network-related, the instance tries
- to find a new master to join off and tries again (:tarantool-issue:`6126`,
- :tarantool-issue:`8681`).
-- States when joining a replica are renamed. Now the value of
- ``box.info.replication[id].upstream.status`` during join can be either
- ``wait_snapshot`` or ``fetch_snapshot`` instead of ``initial_join`` (:tarantool-issue:`6126`).
-- Fixed replicaset bootstrap getting stuck on some nodes with ``ER_READONLY`` when
- there are connectivity problems (:tarantool-issue:`7737`, :tarantool-issue:`8681`).
-- Fixed a bug when a replicaset state machine that is tracking the number
- of appliers according to their states could become inconsistent during
- reconfiguration (:tarantool-issue:`7590`).
-
-LuaJIT
-~~~~~~
-
-Backported patches from the vanilla LuaJIT trunk (:tarantool-issue:`8069`, :tarantool-issue:`8516`).
-The following issues were fixed as part of this activity:
-
-- Fixed ``emit_rma()`` for x64/GC64 mode for non-``mov`` instructions.
-- Limited Lua C library path with the default ``PATH_MAX`` value of 4096 bytes.
-- Fixed assembling of ``IR_LREF`` assembling for GC64 mode on x86_64.
-
-SQL
-~~~
-
-- Fixed an assertion when selecting tuples with incomplete internal
- format (:tarantool-issue:`8418`).
-- Fixed integer overflow issues in built-in functions (:tarantool-sec-issue:`119`).
-- Fixed a possible assertion or segmentation fault when optimizing
- ``INSERT INTO ... SELECT FROM`` (:tarantool-issue:`8661`).
-- Fixed an integer overflow issue and added check for the ``printf()`` failure due
- to too large size (:tarantool-sec-issue:`122`).
-
-Datetime
-~~~~~~~~
-
-- Fixed an error in ``datetime.set`` when ``timestamp`` is passed along with ``nsec``,
- ``usec``, or ``msec`` (:tarantool-issue:`8583`).
-- Fixed errors when the string representation of a datetime object had
- a negative nanosecond part (:tarantool-issue:`8570`).
-
-Build
-~~~~~
-
-- Enabled compiler optimizations for static build dependencies, which were
- erroneously disabled in version 2.10.3 (:tarantool-issue:`8606`).
diff --git a/doc/release/2.10.8.rst b/doc/release/2.10.8.rst
deleted file mode 100644
index 3d518d5dcc..0000000000
--- a/doc/release/2.10.8.rst
+++ /dev/null
@@ -1,201 +0,0 @@
-Tarantool 2.10.8
-================
-
-Released on 2023-09-14.
-
-* Release: :tarantool-release:`2.10.8`.
-* Tag: ``2.10.8``.
-
-Overview
---------
-
-2.10.8 is the ninth
-:doc:`stable ` version of the 2.10 release series.
-It introduces 5 improvements and resolves 28 bugs since 2.10.7.
-
-The “stable” label means that we have all planned features implemented
-and we see no high-impact issues. However, if you encounter an issue,
-feel free to `report
-it `__ on GitHub.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
-data layout, client-server protocol, and replication protocol.
-
-Please :doc:`upgrade ` using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-Box
-~~~
-
-- The maximum length of ``box.cfg{}`` string parameters is now 512
- instead of 256.
-
-Test
-~~~~
-
-Fuzz
-^^^^
-
-- LuaJIT now can be fuzzed using grammar-based fuzzer (:tarantool-issue:`4823`).
-
-Build
-~~~~~
-
-- Hardening against memory corruption attacks is now enabled by default
- on FreeBSD (:tarantool-issue:`7536`).
-- Added the CMake option ``FIBER_STACK_SIZE`` to set the default fiber
- stack size.
-- Updated libcurl to version 8.3.0.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a bug when Tarantool failed to decode a request containing an
- unknown IPROTO key. The bug resulted in broken connectivity between
- Tarantool 2.10 and 2.11 (:tarantool-issue:`8745`).
-- Fixed a bug causing the ``ER_CURSOR_NO_TRANSACTION`` failure for
- transactions on synchronous spaces when the ``on_commit/on_rollback``
- triggers are set (:tarantool-issue:`8505`).
-- Fixed a bug causing the effective session and user are not propagated
- to ``box.on_commit`` and ``box.on_rollback`` trigger callbacks when
- transaction is synchronous (:tarantool-issue:`8742`).
-- Fixed a crash that could happen when Tarantool is started in the
- :ref:`background mode ` (:tarantool-issue:`6128`).
-- Fixed a bug when MVCC sometimes lost gap record (:tarantool-issue:`8326`).
-- Fixed a bug when MVCC rollback of prepared statement could break
- internal invariants (:tarantool-issue:`8648`).
-- Now MVCC engine automatically aborts a transaction if it reads
- changes of a prepared transaction and this transaction is aborted
- (:tarantool-issue:`8654`).
-- Fixed a bug that caused writing incorrect values into the
- ``stream_id`` field of xlog headers (:tarantool-issue:`8783`).
-- Fixed a bug when a space that is referenced by a foreign key could
- not be truncated even if the referring space was empty (:tarantool-issue:`8946`).
-- Fixed a crash that could happen when Tarantool is compiled by
- ``clang`` version 15 and above with enabled AddressSanitizer
- (`tarantool/tarantool-qa#321 `_).
-- Fixed a use-after-free bug in iproto server code (:tarantool-issue:`9037`).
-- Fixed a heap-buffer-overflow bug in fiber creation code (:tarantool-issue:`9026`).
-
-Memtx
-~~~~~
-
-- Fixed a heap-use-after-free bug in the transaction manager, which
- could occur when performing a DDL operation concurrently with a
- transaction on the same space (:tarantool-issue:`8781`).
-
-Vinyl
-~~~~~
-
-- Fixed a heap-use-after-free bug in the Vinyl read iterator caused by
- a race between a disk read and a memory dump task. The bug could lead
- to a crash or an invalid query result (:tarantool-issue:`8852`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed a possible failure to promote the desired node by
- ``box.ctl.promote()`` on a cluster with nodes configured with
- ``election_mode = "candidate"`` (:tarantool-issue:`8497`).
-- Fixed nodes configured with ``election_mode = 'candidate'``
- spuriously detecting a split-vote when another candidate should win
- with exactly a quorum of votes for it (:tarantool-issue:`8698`).
-
-LuaJIT
-~~~~~~
-
-Backported patches from the vanilla LuaJIT trunk (:tarantool-issue:`8516`, :tarantool-issue:`8825`).
-The following issues were fixed as part of this activity:
-
-- Fixed canonicalization of +-0.0 keys for ``IR_NEWREF``.
-
-- Fixed result truncation for ``bit.rol`` on x86_64 platforms.
-
-- Fixed ``lua_yield()`` invocation inside C hooks.
-
-- Fixed memory chunk allocation beyond the memory limit.
-
-- Fixed TNEW load forwarding with instable types.
-
-- Fixed use-def analysis for ``BC_VARG``, ``BC_FUNCV``.
-
-- Fixed ``BC_UCLO`` insertion for returns.
-
-- Fixed recording of ``BC_VARG`` with unused vararg values.
-
-- Initialization instructions on trace are now emitted only for the
- first member of a union.
-
-- Prevent integer overflow while parsing long strings.
-
-- Fixed various ``^`` operator and ``math.pow()`` function
- inconsistencies.
-
-- Fixed parsing with predicting ``next()`` and ``pairs()``.
-
-- Fixed binary number literal parsing. Parsing of binary number with a
- zero fractional part raises error too now.
-
-- Fixed load forwarding optimization applied after table rehashing.
-
-- Fixed recording of the ``BC_TSETM``.
-
-Lua
-~~~
-
-- Fixed the xlog reader Lua module to show unknown row header fields.
- Before this change the xlog reader silently skipped them.
-
-Netbox
-^^^^^^
-
-- Fixed a heap-use-after-free bug in the function creating a tuple
- format Lua object for ``net.box`` (:tarantool-issue:`8889`).
-
-.. _box-1:
-
-Box
-~~~
-
-- Fixed the memory leaks caused by the multi-statement transaction
- errors in the space index building and the space format checking
- operations (:tarantool-issue:`8773`).
-- Fixed a bug in the box console implementation because of which the
- ``language`` parameter was shared between connected clients
- (:tarantool-issue:`8817`).
-- Fixed an invalid memory access in a corner case of a specialized
- comparison function (:tarantool-issue:`8899`).
-
-Console
-~~~~~~~
-
-- Fixed console ignoring ``-i`` flag in case stdin is not a tty
- (:tarantool-issue:`5064`).
-
-Datetime
-~~~~~~~~
-
-- Fixed a bug raising a false positive error when creating new
- intervals with range boundary values (:tarantool-issue:`8878`).
-- Fixed a bug with buffer overflow in ``tnt_strptime`` (:tarantool-issue:`8502`).
-
-Http
-~~~~
-
-- Fixed a streaming connection stuck if etcd is stopped unexpectedly
- (:tarantool-issue:`9086`).
-
-Msgpack
-~~~~~~~
-
-- Fixed decoding datetime intervals with fields larger than possible
- int32 values (:tarantool-issue:`8887`).
diff --git a/doc/release/2.11.0.rst b/doc/release/2.11.0.rst
deleted file mode 100644
index cc96deefd1..0000000000
--- a/doc/release/2.11.0.rst
+++ /dev/null
@@ -1,623 +0,0 @@
-Tarantool 2.11 (LTS)
-====================
-
-Release date: May 24, 2023
-
-Releases on GitHub: :tarantool-release:`2.11.7`, :tarantool-release:`2.11.6`, :tarantool-release:`2.11.5`, :tarantool-release:`2.11.4`, :tarantool-release:`2.11.3`, :tarantool-release:`2.11.2`, :tarantool-release:`2.11.1`, :tarantool-release:`2.11.0`
-
-The 2.11 release of Tarantool includes many new features and fixes.
-This document provides an overview of the most important features for the Enterprise and Community editions.
-
-2.11 is the long-term support (LTS) release with two years of maintenance.
-This means that you will receive all the necessary security fixes and bug fixes throughout this period, and
-be able to get technical support afterward.
-You can learn more about the Tarantool release policy from the :doc:`corresponding document `.
-
-.. container:: table
-
- .. list-table::
- :widths: 50 50
- :header-rows: 1
-
- * - :ref:`Enterprise Edition <2-11-enterprise>`
- - :ref:`Community Edition <2-11-community>`
-
- * - * :ref:`Security enhancements <2-11-security_enhancements>`
- * :ref:`Read views <2-11-read_views>`
- * :ref:`Data compression improvements <2-11-data_compression_improvements>`
- * :ref:`WAL extensions <2-11-wal_extensions>`
- - * :ref:`Pagination <2-11-pagination>`
- * :ref:`Downgrading a database <2-11-downgrading_database>`
- * :ref:`New bootstrap strategy <2-11-new_bootstrap_strategy>`
- * :ref:`Limitation of fiber execution time <2-11-limit_fiber_execution>`
- * :ref:`Per-module logging <2-11-per_module_logging>`
- * :ref:`HTTP client enhancements <2-11-http_client>`
- * :ref:`Linearizable read <2-11-linearizable_read>`
- * :ref:`Explicit sequential scanning in SQL <2-11-sequential_scanning_sql>`
- * :ref:`Strict fencing in RAFT <2-11-strict_fencing_raft>`
-
-.. _2-11-upgrades:
-
-Upgrading to Tarantool 2.11
----------------------------
-
-Tarantool provides the live upgrade mechanism that enables cluster upgrade without
-downtime. In case of upgrade issues, you can roll back to the original state
-without downtime as well.
-
-To learn how to upgrade to Tarantool 2.11, see :doc:`Upgrades `.
-
-.. _2-11-enterprise:
-
-Enterprise Edition
-------------------
-
-
-.. _2-11-security_enhancements:
-
-Security enhancements
-~~~~~~~~~~~~~~~~~~~~~
-
-
-.. _2-11-encrypted_ssl_tls_keys:
-
-Encrypted SSL/TLS keys
-**********************
-
-Tarantool Enterprise Edition now supports encrypted SSL/TLS private key files protected with a password.
-Given that most certificate authorities generate encrypted keys, this feature simplifies the maintenance of Tarantool instances.
-
-A password can be provided using either the new ``ssl_password`` URI parameter or in a text file specified using ``ssl_password_file``, for example:
-
-.. code-block:: lua
-
- box.cfg{ listen = {
- uri = 'localhost:3301',
- params = {
- transport = 'ssl',
- ssl_key_file = '/path_to_key_file',
- ssl_cert_file = '/path_to_cert_file',
- ssl_ciphers = 'HIGH:!aNULL',
- ssl_password = 'topsecret'
- }
- }}
-
-To learn more, see :ref:`Traffic encryption `.
-
-
-.. _2-11-security_enforcement_options:
-
-Security enforcement options
-****************************
-
-With 2.11, Tarantool Enterprise Edition includes new security enforcement options.
-These options enable you to enforce the use of strong passwords, set up a maximum password age, and so on.
-For example, the ``password_min_length`` configuration option specifies the minimum number of characters for a password:
-
-.. code-block:: lua
-
- box.cfg{ password_min_length = 10 }
-
-To specify the maximum period of time (in days) a user can use the same password, you can use the ``password_lifetime_days`` option, which uses the system clock under the hood:
-
-.. code-block:: lua
-
- box.cfg{ password_lifetime_days = 365 }
-
-Note that by default, new options are not specified.
-You can learn more about all the available options from the
-:ref:`Authentication restrictions ` and
-:ref:`Password policy ` sections.
-
-
-.. _2-11-pap_sha_256:
-
-PAP-SHA256 authentication method
-********************************
-
-By default, Tarantool uses the CHAP protocol to authenticate users and applies SHA-1 hashing to passwords.
-In this case, password hashes are stored in the ``_user`` space unsalted.
-If an attacker gains access to the database, they may crack a password, for example, using a rainbow table.
-
-With the Enterprise Edition, you can enable PAP authentication with the SHA256 hashing algorithm.
-For PAP, a password is salted with a user-unique salt before saving it in the database.
-
-Given that PAP transmits a password as plain text, Tarantool requires configuring
-:ref:`SSL/TLS `.
-Then, you need to specify the ``box.cfg.auth_type`` option as follows:
-
-.. code-block:: lua
-
- box.cfg{ auth_type = 'pap-sha256' }
-
-Learn more from the :ref:`Authentication protocol ` section.
-
-
-
-
-.. _2-11-read_views:
-
-Read views
-~~~~~~~~~~
-
-Starting with 2.11, Tarantool Enterprise Edition provides the ability to create read views - in-memory snapshots of the entire database that aren't affected by future data modifications.
-Read views can be used to make complex analytical queries.
-This reduces the load on the main database and improves RPS for a single Tarantool instance.
-
-Working with read views consists of three main steps:
-
-1. To create a read view, call the ``box.read_view.open()`` function:
-
- .. code-block:: tarantoolsession
-
- tarantool> read_view1 = box.read_view.open({name = 'read_view1'})
-
-2. After creating a read view, you can access database spaces and their indexes and get data using the familiar ``select`` and ``pairs`` data-retrieval operations, for example:
-
- .. code-block:: tarantoolsession
-
- tarantool> read_view1.space.bands:select({}, {limit = 4})
- ---
- - - [1, 'Roxette', 1986]
- - [2, 'Scorpions', 1965]
- - [3, 'Ace of Base', 1987]
- - [4, 'The Beatles', 1960]
-
-3. When a read view is no longer needed, close it using the ``read_view_object:close()`` method:
-
- .. code-block:: tarantoolsession
-
- tarantool> read_view1:close()
-
-To learn more, see the :ref:`Read views ` topic.
-
-
-.. _2-11-data_compression_improvements:
-
-Data compression improvements
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Tarantool Enterprise Edition now includes the ``zlib`` algorithm for :ref:`tuple compression `.
-This algorithm shows good performance in data decompression,
-which reduces CPU usage if the volume of read operations significantly exceeds the volume of write operations.
-
-To use the new algorithm, set the ``compression`` option to ``zlib`` when formatting a space:
-
-.. code-block:: lua
-
- box.space.my_space:format{
- {name = 'id', type = 'unsigned'},
- {name = 'data', type = 'string', compression = 'zlib'},
- }
-
-The new :ref:`compress ` module provides an API for compressing and decompressing arbitrary data strings using the same algorithms available for tuple compression:
-
-.. code-block:: lua
-
- compressor = require('compress.zlib').new()
-
- data = compressor:compress('Hello world!') -- returns a binary string
- compressor:decompress(data) -- returns 'Hello world!'
-
-
-
-.. _2-11-wal_extensions:
-
-WAL extensions
-~~~~~~~~~~~~~~
-
-Tarantool can use a write-ahead log not only to maintain data persistence and replication.
-Another use case is implementing a CDC (Change Data Capture) utility that transforms a data replication stream and provides the ability to replicate data from Tarantool to an external storage.
-
-.. image:: _images/wal_extensions.png
- :align: center
- :alt: Write-ahead log extensions
-
-With 2.11, Tarantool Enterprise Edition provides WAL extensions that add auxiliary information to each write-ahead log record.
-For example, you can enable storing old and new tuples for each write-ahead log record.
-This is especially useful for the ``update`` operation because a write-ahead log record contains only a key value.
-
-See the :ref:`WAL extensions ` topic to learn how to enable and configure WAL extensions.
-
-
-
-.. _2-11-community:
-
-Community Edition
------------------
-
-.. _2-11-pagination:
-
-Pagination
-~~~~~~~~~~
-
-
-With the 2.11 version, Tarantool supports pagination and enables the ability to get data in chunks.
-The :ref:`index_object:select() ` and :ref:`index_object:pairs() ` methods now provide the ``after`` option that specifies a tuple or a tuple's position after which ``select`` starts the search.
-In the example below, the ``select`` operation gets maximum 3 tuples after the specified tuple:
-
-.. code-block:: tarantoolsession
-
- tarantool> bands.index.primary:select({}, {after = {4, 'The Beatles', 1960}, limit = 3})
- ---
- - - [5, 'Pink Floyd', 1965]
- - [6, 'The Rolling Stones', 1962]
- - [7, 'The Doors', 1965]
- ...
-
-The ``after`` option also accepts the position of the tuple represented by the base64 string.
-For example, you can set the ``fetch_pos`` boolean option to ``true`` to return the position of the last selected tuple as the second value:
-
-.. code-block:: tarantoolsession
-
- tarantool> result, position = bands.index.primary:select({}, {limit = 3, fetch_pos = true})
- ---
- ...
-
-Then, pass this position as the ``after`` parameter:
-
-.. code-block:: tarantoolsession
-
- tarantool> bands.index.primary:select({}, {limit = 3, after = position})
- ---
- - - [4, 'The Beatles', 1960]
- - [5, 'Pink Floyd', 1965]
- - [6, 'The Rolling Stones', 1962]
- ...
-
-The new ``after`` and ``fetch_pos`` options are also implemented by the built-in ``net.box`` connector.
-For example, you can use these options to get data :ref:`asynchronously `.
-
-
-
-.. _2-11-downgrading_database:
-
-Downgrading a database
-~~~~~~~~~~~~~~~~~~~~~~
-
-The 2.11 version provides the ability to downgrade a database to the specified Tarantool version using the :ref:`box.schema.downgrade() ` method.
-This might be useful in the case of a failed upgrade.
-
-To prepare a database for using it on an older Tarantool instance, call ``box.schema.downgrade`` and pass the desired Tarantool version:
-
-.. code-block:: tarantoolsession
-
- tarantool> box.schema.downgrade('2.8.4')
-
-To see Tarantool versions available for downgrade, call ``box.schema.downgrade_versions()``.
-The earliest release available for downgrade is :doc:`2.8.2 `.
-
-
-
-.. _2-11-new_bootstrap_strategy:
-
-New bootstrap strategy
-~~~~~~~~~~~~~~~~~~~~~~
-
-In previous Tarantool versions, the :ref:`replication_connect_quorum ` option was used to specify the number of running nodes to start a replica set.
-This option was designed to simplify a replica set bootstrap.
-But in fact, this behavior brought some issues during a cluster lifetime and maintenance operations, for example:
-
-* Users who didn't change this option encountered problems with the partial cluster bootstrap.
-* Users who changed the option encountered problems during the instance restart.
-
-With 2.11, ``replication_connect_quorum`` is deprecated in favor of :ref:`bootstrap_strategy `.
-This option works during a replica set bootstrap and implies sensible default values for other parameters based on the replica set configuration.
-Currently, ``bootstrap_strategy`` accepts two values:
-
-* ``auto``: a node doesn't boot if half or more of the other nodes in a replica set are not connected.
- For example, if the replication parameter contains 2 or 3 nodes, a node requires 2 connected instances.
- In the case of 4 or 5 nodes, at least 3 connected instances are required.
- Moreover, a bootstrap leader fails to boot unless every connected node has chosen it as a bootstrap leader.
-* ``legacy``: a node requires the ``replication_connect_quorum`` number of other nodes to be connected.
- This option is added to keep the compatibility with the current versions of Cartridge and might be removed in the future.
-
-
-
-.. _2-11-limit_fiber_execution:
-
-Limitation of fiber execution time
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Starting with 2.11, if a fiber works too long without yielding control, you can use a fiber slice to limit its execution time.
-The :ref:`fiber_slice_default ` ``compat`` option controls the default value of the maximum fiber slice.
-In future versions, this option will be set to ``true`` by default.
-
-There are two slice types - a warning and an error slice:
-
-* When a warning slice is over, a warning message is logged, for example:
-
- .. code-block:: console
-
- fiber has not yielded for more than 0.500 seconds
-
-* When an error slice is over, the fiber is cancelled and the ``FiberSliceIsExceeded`` error is thrown:
-
- .. code-block:: console
-
- FiberSliceIsExceeded: fiber slice is exceeded
-
-Note that these messages can point at issues in the existing application code.
-These issues can cause potential problems in production.
-
-The fiber slice is checked by all functions operating on spaces and indexes,
-such as ``index_object.select()``, ``space_object.replace()``, and so on.
-You can also use the ``fiber.check_slice()`` function in application code to check whether the slice for the current fiber is over.
-
-The example below shows how to use ``fiber.set_max_slice()`` to limit the slice for all fibers.
-``fiber.check_slice()`` is called inside a long-running operation to determine whether a slice for the current fiber is over.
-
-.. code-block:: lua
-
- -- app.lua --
- fiber = require('fiber')
- clock = require('clock')
-
- fiber.set_max_slice({warn = 1.5, err = 3})
- time = clock.monotonic()
- function long_operation()
- while clock.monotonic() - time < 5 do
- fiber.check_slice()
- -- Long-running operation ⌛⌛⌛ --
- end
- end
- long_operation_fiber = fiber.create(long_operation)
-
-The output should look as follows:
-
-.. code-block:: console
-
- $ tarantool app.lua
- fiber has not yielded for more than 1.500 seconds
- FiberSliceIsExceeded: fiber slice is exceeded
-
-
-To learn more about fiber slices, see the :ref:`Limit execution time ` section.
-
-
-.. _2-11-per_module_logging:
-
-Per-module logging
-~~~~~~~~~~~~~~~~~~
-
-Tarantool 2.11 adds support for modules in the :ref:`logging ` subsystem.
-You can configure different log levels for each module using the ``box.cfg.log_modules`` configuration option.
-The example below shows how to set the ``info`` level for ``module1`` and the ``error`` level for ``module2``:
-
-.. code-block:: tarantoolsession
-
- tarantool> box.cfg{log_level = 'warn', log_modules = {module1 = 'info', module2 = 'error'}}
- ---
- ...
-
-To create a log module, call the ``require('log').new()`` function:
-
-.. code-block:: tarantoolsession
-
- tarantool> module1_log = require('log').new('module1')
- ---
- ...
- tarantool> module2_log = require('log').new('module2')
- ---
- ...
-
-Given that ``module1_log`` has the ``info`` logging level, calling ``module1_log.info`` shows a message but ``module1_log.debug`` is swallowed:
-
-.. code-block:: tarantoolsession
-
- tarantool> module1_log.info('Hello from module1!')
- 2023-05-12 15:10:13.691 [39202] main/103/interactive/module1 I> Hello from module1!
- ---
- ...
- tarantool> module1_log.debug('Hello from module1!')
- ---
- ...
-
-Similarly, ``module2_log`` swallows all events with severities below the ``error`` level:
-
-.. code-block:: tarantoolsession
-
- tarantool> module2_log.info('Hello from module2!')
- ---
- ...
-
-
-
-
-.. _2-11-http_client:
-
-HTTP client enhancements
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. _2-11-content_serialization:
-
-Content serialization
-*********************
-
-The :ref:`HTTP client ` now automatically serializes the content in a specific format when sending a request based on the specified ``Content-Type`` header and supports all the Tarantool built-in types.
-By default, the client uses the ``application/json`` content type and sends data serialized as JSON:
-
-.. code-block:: lua
-
- local http_client = require('http.client').new()
- local uuid = require('uuid')
- local datetime = require('datetime')
-
- response = http_client:post('https://httpbin.org/anything', {
- user_uuid = uuid.new(),
- user_name = "John Smith",
- created_at = datetime.now()
- })
-
-The body for the request above might look like this:
-
-.. code-block:: console
-
- {
- "user_uuid": "70ebc08d-2a9a-4ea7-baac-e9967dd45ac7",
- "user_name": "John Smith",
- "created_at": "2023-05-15T11:18:46.160910+0300"
- }
-
-
-To send data in a YAML or MsgPack format, set the ``Content-Type`` header explicitly to ``application/yaml`` or ``application/msgpack``, for example:
-
-.. code-block:: lua
-
- response = http_client:post('https://httpbin.org/anything', {
- user_uuid = uuid.new(),
- user_name = "John Smith",
- created_at = datetime.now()
- }, {
- headers = {
- ['Content-Type'] = 'application/yaml',
- }
- })
-
-
-
-
-.. _2-11-query_and_form_parameters:
-
-Query and form parameters
-*************************
-
-You can now encode query and form parameters using the new ``params`` request option.
-In the example below, the requested URL is ``https://httpbin.org/get?page=1``.
-
-.. code-block:: lua
-
- local http_client = require('http.client').new()
-
- response = http_client:get('https://httpbin.org/get', {
- params = { page = 1 },
- })
-
-Similarly, you can send form parameters using the ``application/x-www-form-urlencoded`` type as follows:
-
-.. code-block:: lua
-
- local http_client = require('http.client').new()
-
- response = http_client:post('https://httpbin.org/anything', nil, {
- params = { user_id = 1, user_name = 'John Smith' },
- })
-
-
-.. _2-11-streaming:
-
-Streaming
-*********
-
-
-The HTTP client now supports chunked writing and reading of request and response data, respectively.
-The example below shows how to get chunks of a JSON response sequentially instead of waiting for the entire response:
-
-.. code-block:: lua
-
- local http_client = require('http.client').new()
- local json = require('json')
-
- local timeout = 1
- local io = http_client:get(url, nil, {chunked = true})
- for i = 1, 3 do
- local data = io:read('\r\n', timeout)
- if len(data) == 0 then
- -- End of the response.
- break
- end
- local decoded = json.decode(data)
- -- <..process decoded data..>
- end
- io:finish(timeout)
-
-Streaming can also be useful to upload a large file to a server or to subscribe to changes in ``etcd`` using the gRPC-JSON gateway.
-The example below demonstrates communication with the ``etcd`` stream interface.
-The request data is written line-by-line, and each line represents an ``etcd`` command.
-
-.. code-block:: lua
-
- local http_client = require('http.client').new()
-
- local io = http_client:post('http://localhost:2379/v3/watch', nil, {chunked = true})
- io:write('{"create_request":{"key":"Zm9v"}}')
- local res = io:read('\n')
- print(res)
- -- <..you can feed more commands here..>
- io:finish()
-
-
-
-
-.. _2-11-linearizable_read:
-
-Linearizable read
-~~~~~~~~~~~~~~~~~
-
-Linearizability of read operations implies that if a response for a write request arrived earlier than a read request was made, this read request should return the results of the write request.
-Tarantool 2.11 introduces the new ``linearizable`` isolation level for :ref:`box.begin() `:
-
-.. code-block:: lua
-
- box.begin({txn_isolation = 'linearizable', timeout = 10})
- box.space.my_space:select({1})
- box.commit()
-
-When called with ``linearizable``, ``box.begin()`` yields until the instance receives enough data from remote peers to be sure that the transaction is linearizable.
-
-There are several prerequisites for linearizable transactions:
-
-* Linearizable transactions may only perform requests to synchronous, local, or temporary memtx spaces.
-* Starting a linearizable transaction requires :ref:`box.cfg.memtx_use_mvcc_engine ` to be set to ``true``.
-* The node is the replication source for at least ``N - Q + 1`` remote replicas.
- Here ``N`` is the count of registered nodes in the cluster and ``Q`` is :ref:`replication_synchro_quorum `.
- So, for example, you can't perform a linearizable transaction on anonymous replicas.
-
-
-
-.. _2-11-sequential_scanning_sql:
-
-Explicit sequential scanning in SQL
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Tarantool is primarily designed for OLTP workloads.
-This means that data reads are supposed to be relatively small.
-However, a suboptimal SQL query can cause a heavy load on a database.
-
-The new ``sql_seq_scan`` :ref:`session setting ` is added to explicitly cancel full table scanning.
-The request below should fail with the ``Scanning is not allowed for 'T'`` error:
-
-.. code-block:: sql
-
- SET SESSION "sql_seq_scan" = false;
- SELECT a FROM t WHERE a + 1 > 10;
-
-
-To enable table scanning explicitly, use the new ``SEQSCAN`` keyword:
-
-.. code-block:: sql
-
- SET SESSION "sql_seq_scan" = false;
- SELECT a FROM SEQSCAN t WHERE a + 1 > 10;
-
-In future versions, ``SEQSCAN`` will be required for scanning queries with the ability to disable the check using the ``sql_seq_scan`` session setting.
-The new behavior can be enabled using a :ref:`corresponding compat option `.
-
-
-.. _2-11-strict_fencing_raft:
-
-Strict fencing in RAFT
-~~~~~~~~~~~~~~~~~~~~~~
-
-Leader election is implemented in Tarantool as a modification of the Raft algorithm.
-The 2.11 release adds the ability to specify the leader fencing mode that affects the leader election process.
-
-.. NOTE::
-
- Currently, Cartridge does not support leader election using Raft.
-
-You can control the fencing mode using the :ref:`election_fencing_mode ` property, which accepts the following values:
-
-* In ``soft`` mode, a connection is considered dead if there are no responses for ``4 * replication_timeout`` seconds both on the current leader and the followers.
-* In ``strict`` mode, a connection is considered dead if there are no responses for ``2 * replication_timeout`` seconds on the current leader and ``4 * replication_timeout`` seconds on the followers.
- This improves the chances that there is only one leader at any time.
diff --git a/doc/release/2.2.1.rst b/doc/release/2.2.1.rst
deleted file mode 100644
index 9578628c04..0000000000
--- a/doc/release/2.2.1.rst
+++ /dev/null
@@ -1,293 +0,0 @@
-.. _whats_new_221:
-
-Tarantool 2.2.1
-===============
-
-Release: :tarantool-release:`2.2.1`.
-Release type: beta. Release date: 2019-08-02.
-
-Overview
---------
-
-This is a :ref:`beta ` version of the 2.2 series. The label
-"beta" means we have no critical issues and all planned features are there.
-
-The goal of this release is to introduce new indexing features, extend SQL
-feature set, and improve integration with the core.
-
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in binary data layout,
-client-server protocol and replication protocol.
-You can :ref:`upgrade ` using the ``box.schema.upgrade()``
-procedure.
-
-Functionality added or changed
-------------------------------
-
-* (SQL) ALTER now allows to add a constraint:
-
- .. code-block:: sql
-
- CREATE TABLE t2 (id INT PRIMARY KEY);
- ALTER TABLE t2 ADD CONSTRAINT ck CHECK(id > 0);
-
-* (SQL) CHECK constraints are validated during DML operations performed
- from the Lua land:
-
- .. code-block:: lua
-
- s = box.schema.space.create('withdata')
- pk = s:create_index('pk')
- s:format({{'idx', 'number'}})
- s:create_check_constraint('le10', '"idx" < 10')
-
- .. code-block:: tarantoolsession
-
- tarantool> s:insert({11})
- ---
- - error: 'Check constraint failed ''le10'': "idx" < 10'
- ...
-
-* (SQL) New :ref:`SQL types ` introduced:
- VARBINARY, UNSIGNED, and `BOOLEAN`.
-
-* (SQL) CREATE TABLE statement (and all other data definition statements)
- are now truly transactional.
-
-* (SQL) SQL now uses Tarantool diagnostics API to set errors, so error reporting
- now provides an error code in addition to error message.
-
-* (SQL) Multiple improvements to the type system to make it more consistent.
-
-* (SQL) Added aliases for LENGTH() from ANSI SQL:
- CHAR_LENGTH() and CHARACTER_LENGTH().
-
-* (SQL) It is possible to use HAVING without GROUP BY.
-
-* (Server) New fixed point type (DECIMAL) introduced to Tarantool:
-
- .. code-block:: tarantoolsession
-
- decimal = require('decimal')
- tarantool> a = decimal.new('123.456789')
- ---
- ...
- tarantool> decimal.precision(a)
- ---
- - 9
- ...
- tarantool> decimal.scale(a)
- ---
- - 6
- ...
- tarantool> decimal.round(a, 4)
- ---
- - '123.4568'
- ...
-
-* (Server) Multikey index support:
-
- .. code-block:: lua
-
- -- Multikey indexes (for memtx tree & vinyl);
- -- cannot be primary; may be non-unique
- s = box.schema.space.create('clients', {engine = 'vinyl'})
- pk = s:create_index('pk')
- phone_type = s:create_index('phone_type', {
- unique = false,
- parts = {{'[3][*].type', 'str'}}})
-
- s:insert({1, 'James',
- {{type = 'home', number = '999'},
- {type = 'work', number = '777'}
- }})
- s:insert({2, 'Bob',
- {{type = 'work', number = '888'}}})
- s:insert({3, 'Alice', {{type = 'home', number = '333'}}})
-
- .. code-block:: tarantoolsession
-
- tarantool> phone_type:select('work')
- ---
- - - [1, 'James', [{'type': 'home', 'number': '999'},
- {'type': 'work', 'number': '777'}]]
- - [2, 'Bob', [{'type': 'work', 'number': '888'}]]
- ...
-
-* (Server) Now it is possible to make functions persistent:
-
- .. code-block:: lua
-
- box.schema.func.create('summarize',
- {body = [[function(a,b) return a+b end]],
- is_deterministic = true})
-
- .. code-block:: tarantoolsession
-
- tarantool> box.func.summarize
- - aggregate: none
- returns: any
- exports:
- lua: true
- sql: false
- id: 66
- is_sandboxed: false
- setuid: false
- is_multikey: false
- is_deterministic: true
- body: function(a,b) return a+b end
- name: summarize
- language: LUA
-
- tarantool> box.func.summarize:call({1, 2})
- ---
- - 3
- ...
-
-* (Server) Functional indexes implemented:
-
- .. code-block:: lua
-
- -- Functional multikey indexes: define is_multikey = true
- -- in function definition and return a table of keys from function
- lua_code = [[function(tuple)
- local address = string.split(tuple[2])
- local ret = {}
- for _, v in pairs(address) do table.insert(ret, {utf8.upper(v)}) end
- return ret
- end]]
- box.schema.func.create('addr_extractor', {body = lua_code,
- is_deterministic = true,
- is_sandboxed = true,
- opts = {is_multikey = true}})
- s = box.schema.space.create('withdata')
- pk = s:create_index('name', {parts = {1, 'string'}})
- idx = s:create_index('addr', {unique = false, func = box.func.addr_extractor.id, parts = {{1, 'string', collation = 'unicode_ci'}}})
-
- s:insert({"James", "SIS Building Lambeth London UK"})
- s:insert({"Sherlock", "221B Baker St Marylebone London NW1 6XE UK"})
-
- .. code-block:: tarantoolsession
-
- tarantool> idx:select('Sis')
- ---
- - - ['James', 'SIS Building Lambeth London UK']
- ...
-
-* Partial core dumps, which are now on by default.
- It is now possible to avoid dumping tuples at all during core dump.
-
-* Data definition statements, such as create or alter index, which do not yield,
- can now be used in a transaction. This in practice includes all statements
- except creating an index on a non-empty space, or changing a format on
- a non-empty space.
-
-* It is now possible to set a sequence not only for the first part of the index:
-
- .. code-block:: lua
-
- s.index.pk:alter{sequence = {field = 2}}
-
-* Allow to call ``box.session.exists()`` and ``box.session.fd()``
- without any arguments.
-
-* New function introduced to get an index key from a tuple:
-
- .. code-block:: lua
-
- s = box.schema.space.create('withdata')
- pk = s:create_index('pk')
- sk = s:create_index('sk', {parts = {
- {2, 'number', path = 'a'},
- {2, 'number', path = 'b'}}})
- s:insert{1, {a = 1, b = 1}}
- s:insert{2, {a = 1, b = 2}}
- s:insert{3, {a = 3, b = 3}}
- sk:select(2)
-
- key_def_lib = require('key_def')
- key_def = key_def_lib.new(pk.parts)
- for _, tuple in sk:pairs({1}) do
- local key = key_def:extract_key(tuple)
- pk:delete(key)
- end
- s:select()
-
-* (Engines) New protocol (called :ref:`SWIM `) implemented to keep
- a table of cluster members.
-
-* (Engines) Removed yields from Vinyl DDL on commit triggers.
-
-* (Engines) Improved performance of SELECT-s on memtx spaces.
- The drawback is that now every memtx-tree tuple consumes extra 8 bytes for
- a search hint.
-
-* (Engines) Indexes of memtx spaces are now built in background fibers.
- This means that we do not block the event loop during index build anymore.
-
-* Replication applier now can apply transactions which were concurrent
- on the master concurrently on replica. This dramatically improves replication
- peak performance, from ~50K writes per second to 200K writes per second and
- higher on a single instance.
-
-* Transaction boundaries introduced to replication protocol.
- This means that Tarantool replication is now transaction-safe, and also
- reduces load on replica write ahead log in case the master uses a lot of
- multi-statement transactions.
-
-* Tuple access by field name for ``net.box``:
-
- .. code-block:: lua
-
- box.cfg{listen = 3302}
- box.schema.user.grant('guest','read, write, execute', 'space')
- box.schema.user.grant('guest', 'create', 'space')
- box.schema.create_space("named", {format = {{name = "id"}}})
- box.space.named:create_index('id', {parts = {{1, 'unsigned'}}})
- box.space.named:insert({1})
-
- require('net.box').connect('localhost', 3302).space.named:get(1).id
-
-* Cluster id check is now the slave’s responsibility.
-
-* It is now possible to set the output format to Lua instead of YAML
- in the :ref:`interactive console `.
-
-* Multiple new collations added.
- New collations follow this naming pattern:
-
- .. code-block:: none
-
- unicode__
-
- Three strengths are used:
-
- * Primary - "s1”
- * Secondary - "s2"
- * Tertiary - "s3"
-
- The following list contains so-called "stable" collations -- the
- ones whose sort order doesn't depend on the ICU version:
-
- .. code-block:: none
-
- unicode_am_s3
- unicode_fi_s3
- unicode_de__phonebook_s3
- unicode_haw_s3
- unicode_he_s3
- unicode_hi_s3
- unicode_is_s3
- unicode_ja_s3
- unicode_ko_s3
- unicode_lt_s3
- unicode_pl_s3
- unicode_si_s3
- unicode_es_s3
-
-* New function ``utime()`` introduced to the ``fio`` module.
-
-* :ref:`Merger ` for tuples streams added.
diff --git a/doc/release/2.2.2.rst b/doc/release/2.2.2.rst
deleted file mode 100644
index 9b95abb63e..0000000000
--- a/doc/release/2.2.2.rst
+++ /dev/null
@@ -1,351 +0,0 @@
-Tarantool 2.2.2
-===============
-
-Release: :tarantool-release:`2.2.2`
-Date: 2019-12-31 Tag: 2.2.2-0-g0a577ff
-
-Overview
---------
-
-2.2.2 is the first stable version of the 2.2 release series. The label
-stable means we have all planned features implemented and we see no
-high-impact issues.
-
-This release resolves roughly 75 issues since the latest beta version.
-There may be bugs in less common areas, please feel free to file an
-issue at `GitHub `_.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `_
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-There are changes labeled with **[Breaking change]**. It means that the
-old behaviour was considered error-prone and therefore changed to
-protect users from unintended mistakes. However, there is a little
-probability that someone can lean on the old behaviour, and this label
-is to bring attention to the things that have been changed.
-
-Core
-~~~~
-
-- **[Breaking change]** Drop ``rows_per_wal`` ``box.cfg()`` option in
- favor of ``wal_max_size`` (:tarantool-issue:`3762`)
-
-Lua
-~~~
-
-- **[Breaking change]** json and msgpack serializers now raise an error
- when a depth of data nesting exceeds ``encode_max_depth`` option
- value. The default value of the option is increased from 32 to 128.
- ``encode_deep_as_nil`` option was added to give ability to set the
- old behaviour back (:tarantool-issue:`4434`). Note: Those options can be set using
- ``json.cfg({<...>})`` or ``msgpack.cfg({<...>})``. Note: box data
- modification functions (``insert``, ``replace``, ``update``,
- ``upsert``) follows options of default msgpack serializer instance
- and now they will raise an error by default on too nested data rather
- then cut them silently. This behaviour can be configured using
- ``msgpack.cfg({<...>})``. Note: ``box.tuple.new()``,
- ``space:update()``, ``space:upsert()`` and several other functions
- did not follow ``encode_max_depth`` option, now they do (see also
- ‘Bug fixes’). Note: ``json.cfg`` and ``msgpack.cfg`` tables did not
- updated when an option is changed, now they show actual values (see
- also ‘Bug fixes’).
-- Show line and column in json.decode() errors (:tarantool-issue:`3316`)
-- Exit gracefully when a main script throws an error: notify systemd,
- log the error (:tarantool-issue:`4382`)
-- key_def: accept both ``field`` and ``fieldno`` in
- ``key_def.new(<...>)`` (:tarantool-issue:`4519`). Originally ``key_def.new(<...>)``
- accepts only ``fieldno`` to allow creation with
- ``.parts`` as argument. However index definition format
- (``.create_index(<...>)``) is different and requires
- ``field``. Now both are supported.
-- Enable ``__pairs`` and ``__ipairs`` metamethods from Lua 5.2 (:tarantool-issue:`4560`).
- We still conform Lua 5.1 API, which is not always compatible with Lua
- 5.2. The change is only about those metamethods.
-
-Misc
-~~~~
-
-- tarantoolctl: allow to start instances with delayed box.cfg{}
- (:tarantool-issue:`4435`)
-- Add package builds and deployment for the following Linux distros:
-
- - Ubuntu 19.10 Eoan Ermine (:tarantool-issue:`4583`)
- - CentOS 8 (:tarantool-issue:`4543`)
- - Fedora 31 (:tarantool-issue:`4612`)
-
-Bugs fixed
-----------
-
-SQL
-~~~
-
-- Modify type of a binding value in a query response metainformation:
- always return INTEGER rather then UNSIGNED, even for positive values.
- This is necessary for consistency with integer literal types.
- `c5246686 `_.
-- Reuse noSQL way to compare floating point values with integral ones.
- This allows to handle corner cases like
- ``SELECT 18446744073709551615.0 > 18446744073709551615`` uniformly.
- `12431ed4 `_.
-- Create or alter of a table with a foreign key may lead to wrong
- bytecode generation that may cause a crash or wrong result (:tarantool-issue:`4495`)
-- Allow to update a scalar value using SQL in a space that was created
- from Lua and contains ‘array’, ‘map’ or ‘any’ field (:tarantool-issue:`4189`). Note:
- Tarantool/SQL provides operations on scalar types and does not
- support ‘array’ and ‘map’ per se.
-- ``INDEXED BY`` clause now obligates the query planner to choose
- provided index,
- `411be0f0 `_
-- Fix dirty memory access when constructing query plan involving search
- of floating point value in index over integer field (:tarantool-issue:`4558`)
-
-.. _core-1:
-
-Core
-~~~~
-
-- Detect a new invalid json path case (:tarantool-issue:`4419`)
-- Randomize the next checkpoint time also after a manual
- ``box.snapshot()`` (:tarantool-issue:`4432`)
-- Fix memory leak in call / eval in the case when a transaction is not
- committed (:tarantool-issue:`4388`)
-- Eliminate warning re ‘strip_core’ box.cfg option on MacOS and
- FreeBSD (:tarantool-issue:`4464`)
-- The msgpack serializer that is under ``box.tuple.new()`` (called
- tuple serializer) did not reflect options set by
- ``msgpack.cfg({<...>})``, part of (:tarantool-issue:`4434`). Aside of
- ``box.tuple.new()`` behaviour itself, it may affect tuple:frommap(),
- methods of key_def Lua module, tuple and table merger sources,
- net.box results of ``:select()`` and ``:execute()`` calls, xlog Lua
- module.
-- box’s ``update`` and ``upsert`` now follow
- ``msgpack.cfg({encode_max_depth = <...>}`` option, part of (:tarantool-issue:`4434`)
-- fiber: make sure the guard page is created, refuse to create a new
- fiber otherwise (:tarantool-issue:`4541`). It is possible in case of heavy memory
- pressure, say, when there is no resources to split VMAs.
-- recovery: build secondary indices in the hot standby mode without
- waiting till the main instance termination (:tarantool-issue:`4135`)
-- Fix error message for incorrect return value of functional index
- extractor function (:tarantool-issue:`4553`)
-
- - Was: "Key format doesn’t match one defined in functional index ‘’
- of space ‘’: supplied key type is invalid: expected boolean’
- - Now: “<…>: expected array”
-
-- JSON path index did ignore is_nullable property when a space had a
- format (:tarantool-issue:`4520`)
-- Forbid ``00000000-0000-0000-0000-000000000000`` as
- ``replicaset_uuid`` and ``instance_uuid`` ``box.cfg({<...>})``
- options value, (:tarantool-issue:`4282`). It did not work as expected: the nil UUID was
- treated as absence of a value.
-- Update cache of universe privileges without reconnect
- (:tarantool-issue:`2763`)
-- net.box: fix memory leak in ``net_box:connect()``
- (:tarantool-issue:`4588`)
-- net.box: don’t fire ``on_connect`` trigger at schema update
- (:tarantool-issue:`4593`).
- Also don’t fire ``on_disconnect`` trigger if a connection never
- entered into ‘active’ state (e.g. when a first schema fetch is
- failed).
-- func: fix use after free on function unload,
- `64f4d06a `_
-- Fix bootstrap.snap file in order to overcome the following warning,
- (:tarantool-issue:`4510`) > xlog.c:1934 E> can’t open tx: bootstrap: has some data
- after eof marker at 5902
-- Don’t destroy a session until ``box.session.on_disconnect(<...>)``
- triggers will be finished (:tarantool-issue:`4627`). This means that, say,
- ``box.session.id()`` can be safely invoked from the ``on_disconnect``
- trigger. Before this change ``box.session.id()`` returns garbage
- (usually 0) after yield in the ``on_disconnect`` trigger. Note:
- tarantool/queue module is affected by this problem in `some
- scenarious `_. It is
- especially suggested to update tarantool at least to this release if
- you’re using this module.
-- func: ``box.schema.func.drop(<..>)`` did not unload unused modules
- (:tarantool-issue:`4648`). Also ``box.schema.func.create(<..>)`` did load of a module
- again even when another function from the module is loaded.
-- Encode Lua number -2^63 as integer in msgpack.encode() and box’s
- functions (:tarantool-issue:`4672`)
-
-Replication
-~~~~~~~~~~~
-
-- Stop relay on subscribe error
- (:tarantool-issue:`4399`)
-- Set ``last_row_time`` to ``now`` in ``relay_new`` and
- ``relay_start``
- (:tarantool-issue:`4431`)
-- Do not abort replication on ER_UNKNOWN_REPLICA
- (:tarantool-issue:`4455`)
-- Enter orphan mode on manual replication configuration change
- (:tarantool-issue:`4424`)
-- Disallow bootstrap of read-only masters
- (:tarantool-issue:`4321`)
-- Prefer to bootstrap a replica from a fully bootstrapped instance
- rather than currently bootstrapping one (:tarantool-issue:`4527`). This change enables
- the case when two nodes (B, C) are being bootstrapped simultaneously
- using the one that is already bootstrapped (A), while A is configured
- to replicate from {B, C} and B from {A, C}.
-- Return immediately from ``box.cfg{<...>}`` when an instance is
- reconfigured with ``replication_connect_quorum = 0`` (:tarantool-issue:`3760`)
- This change also fixes the behaviour of reconfiguration with non-zero
- ``replication_connect_quorum``: ``box.cfg{<...>}`` returns
- immediately regardless of whether connections to upstreams are
- established.
-- Apply replication ``box.cfg({<...>})`` settings in a strict order
- (:tarantool-issue:`4433`)
-- Auto reconnect a replica if password is invalid
- (:tarantool-issue:`4550`)
-- ``box.session.su()`` now reports an error correctly for
- ```` longer then BOX_NAME_MAX, which is 65000,
- `43e29191 `_
- Was: ‘C++ exception’ Now: ‘name length <…> is greater than
- BOX_NAME_MAX’
-- Use empty password when an URI in ``box.cfg{replication = <...>}`` is
- like ``login@host:port`` (:tarantool-issue:`4605`). The behaviour match net.box’s one
- now. Explicit ``login:@host:port`` was necessary before, otherwise a
- replica shows the following error: > Missing mandatory field ‘tuple’
- in request
-- Fix segfault during replication configuration
- (``box.cfg{replication = <...>}`` call)
- (:tarantool-issue:`4440`,
- :tarantool-issue:`4576`,
- :tarantool-issue:`4586`,
- :tarantool-issue:`4643`)
-
-
-Lua
-~~~
-
-- Fix segfault on ``ffi.C._say()`` without filename
- (:tarantool-issue:`4336`)
-- Fix ``pwd.getpwall()`` and ``pwd.getgrall()`` hang on CentOS 6 and
- FreeBSD 12 (:tarantool-issue:`4428`, :tarantool-issue:`4447`)
-- json.encode() now follows ``encode_max_depth`` option for arrays that
- leads to a segfault on recursive Lua tables with numeric keys
- (:tarantool-issue:`4366`)
-- fio.mktree() now reports an error for existing non-directory file
- (:tarantool-issue:`4439`)
-- Update ``json.cfg`` and ``msgpack.cfg`` tables when an option is
- changed, part of (:tarantool-issue:`4434`)
-- Fix handling of a socket read error on the console client
- (``console.connect()`` or ``tarantoolctl connect/enter <...>``),
- `b0b19992 `_
-- Handle ‘not enough memory’ gracefully when it is raised from
- ``lua_newthread()`` (:tarantool-issue:`4556`). There are several places where a new Lua
- thread is created:
-
- - Start execution a Lua function call or an eval request (from a
- binary protocol, SQL or with ``box.func.<...>:call()``).
- - Create of a new fiber.
- - Start execution of a trigger.
- - Start of encoding into a YAML format (``yaml.encode()``).
-
-- Fix stack-use-after-scope in json.decode()
- (:tarantool-issue:`4637`)
-
-HTTP client
-^^^^^^^^^^^
-
-- Use bundled ``libcurl`` rather than system-wide by default,
- (:tarantool-issue:`4318`,
- :tarantool-issue:`4180`,
- :tarantool-issue:`4288`,
- :tarantool-issue:`4389`,
- :tarantool-issue:`4397`). This closes several known problems
- that were fixed in recent libcurl versions, including segfaults,
- hangs, memory leaks and performance problems.
-- Disable verbose mode when ``{verbose = false}`` is passed,
- `5f3d9015 `_
-- Fix assertion fail after curl write error
- (:tarantool-issue:`4232`)
-
-Console Lua output
-^^^^^^^^^^^^^^^^^^
-
-The new Lua output format is still in the alpha stage and has known
-flaws, but we are working to make it rich and stable.
-
-- Output ``box.NULL`` as ``"box.NULL"`` rather then
- ``"cdata: NULL"``, part of (:tarantool-issue:`3834`) (in quotes for now, yes,
- due to (:tarantool-issue:`4585`)
-- Add semicolon (``;``) as responses delimiter (EOS, end of
- stream/statement), analogue of YAMLs end-of-document (``...``)
- marker. This is vital for remote clients to determine an end of a
- particular response, part of (:tarantool-issue:`3834`).
-- Fix hang in the console client (``console.connect()`` or
- ``tarantoolctl connect/enter <...>``) after
- ``\set output lua[,block]`` command, part of (:tarantool-issue:`3834`). In order to
- overcome it two changes were made:
-
- - Parse ``\set output lua[,block]`` command on a client prior to
- sending it to a server, store current responses delimiter (EOS)
- and use it to determine end of responses.
- - Send ``\set output <...>`` command with a default output mode when
- establishing a connection (it is matter if different default modes
- are set).
-
-- Provide ability to get or set current responses delimiter using
- ``console.eos([<...>])``, part of (:tarantool-issue:`3834`)
-
-LuaJIT
-~~~~~~
-
-- Fix fold machinery misbehaves
- (:tarantool-issue:`4376`)
-- Fix for ``debug.getinfo(1,'>S')``
- (:tarantool-issue:`3833`)
-- Fix ``string.find`` recording
- (:tarantool-issue:`4476`)
-- Fixed ‘Data segment size exceeds process limit’ error on FreeBSD/x64:
- do not change resource limits when it is not necessary
- (:tarantool-issue:`4537`)
-- fold: keep type of emitted CONV in sync with its mode,
- `LuaJIT#524 `__ This
- fixes the following assertion fail: > asm_conv: Assertion
- \`((IRType)((ir->t).irt & IRT_TYPE)) != st’ failed
-
-Misc
-~~~~
-
-- Support ``systemd``\ ’s NOTIFY_SOCKET on OS X
- (:tarantool-issue:`4436`)
-- Fix linking with static ``openssl`` library
- (:tarantool-issue:`4437`)
-- Get rid of warning re empty ``NOTIFY_SOCKET`` variable
- (:tarantool-issue:`4305`)
-- rocks: fix ‘invalid date format’ error when installing a packed rock
- (:tarantool-issue:`4481`)
-- Remove libyaml from rpm/deb dependencies, because we use bunbled
- version of libyaml for the packages (since 2.2.1)
- (:tarantool-issue:`4442`)
-- Fix boolean CLI options handling in ``tarantoolctl cat <...>``, such
- as ``--show-system``
- (:tarantool-issue:`4076`)
-- Fix segfault (out of bounds access) when unwinding error occurs at
- backtrace printing (:tarantool-issue:`4636`). Backtrace is printed on SIGFPE and
- SIGSEGV signal or when LuaJIT find itself in unrecoverable state
- (lua_atpanic()).
-
-Building from sources
-^^^^^^^^^^^^^^^^^^^^^
-
-- Fix for GCC 4.8.5, which is default version on CentOS 7
- (:tarantool-issue:`4438`)
-- Fix OpenSSL linking problems on FreeBSD
- (:tarantool-issue:`4490`)
-- Fix linking problems on Mac OS when several toolchains are in PATH
- (:tarantool-issue:`4587`)
-- Fix GCC 9 warning on strncpy()
- (:tarantool-issue:`4515`)
diff --git a/doc/release/2.2.3.rst b/doc/release/2.2.3.rst
deleted file mode 100644
index 55631bfe61..0000000000
--- a/doc/release/2.2.3.rst
+++ /dev/null
@@ -1,175 +0,0 @@
-Tarantool 2.2.3
-===============
-
-Release: :tarantool-release:`2.2.3`
-Date: 2020-04-20 Tag: 2.2.3-1-g98ecc90
-
-Overview
---------
-
-2.2.3 is the last stable version of the 2.2 release series. The label
-stable means we have all planned features implemented and we see no
-high-impact issues.
-
-This release resolves roughly 34 issues since the latest stable version.
-There may be bugs in less common areas, please feel free to file an
-issue at `GitHub `_.
-
-Please note, this release contains **no new features**.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `_
-using the box.schema.upgrade() procedure to unlock all the new features
-of the 2.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- :ref:`fiber.storage ` is cleaned between requests,
- and can be used as a
- request-local storage. Previously ``fiber.storage`` could contain
- some old values in the beginning of an iproto request execution, and
- it needed to be nullified manually. Now the cleanup is unneeded
- (:tarantool-issue:`4662`).
-- ``tuple``/``space``/``index``:``update()``/``upsert()`` were fixed
- not to turn a value into an infinity when a float value was added to
- or subtracted from a float column and exceeded the float value range
- (:tarantool-issue:`4701`).
-- Fix potential execution abort when operating the system runs under
- heavy memory load (:tarantool-issue:`4722`).
-- Make RTREE indexes handle the out of memory error: before this fix,
- OOM during the recovery of an RTREE index resulted in segmentation
- fault (:tarantool-issue:`4619`).
-- Fix the error message returned on using an already dropped sequence
- (:tarantool-issue:`4753`).
-- Add cancellation guard to avoid WAL thread stuck (:tarantool-issue:`4127`).
-- Fix execution abort when ``memtx_memory`` and ``vinyl_memory`` are
- set to more than 4398046510080 bytes. Now an error message is
- returned (:tarantool-issue:`4705`).
-
-Replication
-~~~~~~~~~~~
-
-- Fix rebootstrap procedure not working in case replica itself is
- listed in ``box.cfg.replication`` (:tarantool-issue:`4759`).
-- Fix possible user password leaking via replication logs (:tarantool-issue:`4493`).
-- Refactor vclock map to be exactly 4 bytes in size to fit all 32
- replicas regardless of the compiler used
- (https://github.com/tarantool/tarantool/commit/e5679980aa5f813553a95ab7d31f111dd0893df6).
-- Fix crash when the replication applier rollbacks a transaction
- (:tarantool-issue:`4730`, (:tarantool-issue:`4776`).
-- Local space operations are now counted in 0th vclock component. Every
- instance may have its own 0-th vclock component not matching others’.
- Local space operations are not replicated at all, even as NOPs
- (:tarantool-issue:`4114`).
-- Gc consumers are now ordered by their vclocks and not by vclock
- signatures. Only the WALS that contain no entries needed by any of
- the consumers are deleted (:tarantool-issue:`4114`).
-
-Lua
-~~~
-
-- json: ``:decode()`` doesn’t spoil instance’s options with per-call
- ones (when it is called with the second argument) (:tarantool-issue:`4761`).
-- Handle empty input for ``uri.format()`` properly (:tarantool-issue:`4779`).
-- ``os.environ()`` is now changed when ``os.setenv()`` is called
- (:tarantool-issue:`4733`).
-- ``netbox.self:call/eval()`` now returns the same types as
- ``netbox_connection:call``/``eval``. Previously it could return a
- tuple or ``box.error`` cdata (:tarantool-issue:`4513`).
-- ``box.tuple.*`` namespace is cleaned up from private functions.
- :doc:`/reference/reference_lua/box_tuple/is` description is added to documentation (:tarantool-issue:`4684`).
-- ``tarantoolctl rocks search``: fix the ``--all`` flag (:tarantool-issue:`4529`).
-- ``tarantoolctl rocks remove``: fix the ``--force`` flag (:tarantool-issue:`3632`).
-- libev: backport fix for listening for more then 1024 file descriptors
- on Mac OS (:tarantool-issue:`3867`).
-
-SQL
-~~~
-
-- Fix ``box.stat()`` behavior: now it collects statistics on the
- ``PREPARE`` and ``EXECUTE`` methods as expected (:tarantool-issue:`4756`).
-
-- The inserted values are inserted in the order in which they are given
- in case of INSERT into space with autoincrement (:tarantool-issue:`4256`).
-
-HTTP client
-^^^^^^^^^^^
-
-- When building Tarantool with bundled ``libcurl``, link it with the
- ``c-ares`` library by default (:tarantool-issue:`4591`).
-
-LuaJIT
-~~~~~~
-
-- ``__pairs``/``__ipairs`` metamethods handling is removed since we
- faced the issues with the backward compatibility between Lua 5.1 and
- Lua 5.2 within Tarantool modules as well as other third party code
- (:tarantool-issue:`4770`).
-
-- Introduce ``luajit-gdb.py`` extension with commands for inspecting
- LuaJIT internals. The extension obliges one to provide gdbinfo for
- ``libluajit``, otherwise loading fails. The extension provides the
- following commands:
-
- - ``lj-arch`` dumps values of LJ_64 and LJ_GC64 macro definitions
- - ``lj-tv`` dumps the type and GCobj info related to the given
- TValue
- - ``lj-str`` dumps the contents of the given GCstr
- - ``lj-tab`` dumps the contents of the given GCtab
- - ``lj-stack`` dumps Lua stack of the given lua_State
- - ``lj-state`` shows current VM, GC and JIT states
- - ``lj-gc`` shows current GC stats
-
-- Fix string to number conversion: current implementation respects the
- buffer length (:tarantool-issue:`4773`).
-
-- “FFI sandwich”(\*) detection is introduced. If sandwich is detected
- while trace recording the recording is aborted. The sandwich detected
- while mcode execution leads to the platform panic.
-
-- luaJIT_setmode call is prohibited while mcode execution and leads to
- the platform panic.
-
-(\*) The following stack mix is called FFI sandwich:
-
- Lua-FFI -> C routine -> Lua-C API -> Lua VM
-
-This sort of re-entrancy is explicitly not supported by LuaJIT compiler.
-For more info see gh-4427.
-
-Vinyl
-~~~~~
-
-- Fix assertion fault due to triggered dump process during secondary
- index build (:tarantool-issue:`4810`).
-
-Misc
-~~~~
-
-- Fix crashes at attempts to use ``-e`` and ``-l`` command line options
- concatenated with their values, like this: ``-eprint(100)``
- (:tarantool-issue:`4775`).
-- Fix inability to upgrade from 2.1 if there was an automatically
- generated sequence (:tarantool-issue:`4771`).
-- Update ``libopenssl`` version to 1.1.1f since the previous one was
- EOLed (:tarantool-issue:`4830`).
-
-Building from sources
-^^^^^^^^^^^^^^^^^^^^^
-
-- Fix build of the ``decNumber`` library under OSX (:tarantool-issue:`4580`).
-- Update the ``decNumber`` library to silence the build warning
- produced on too long integer constant
- (https://github.com/tarantool/tarantool/commit/aab03a735c7a215b4371ef834f7d08432b1bf0f7).
-- Fix static build (``-DBUILD_STATIC=ON``) when ``libunwind`` depends
- on ``liblzma`` (:tarantool-issue:`4551`).
diff --git a/doc/release/2.3.1.rst b/doc/release/2.3.1.rst
deleted file mode 100644
index 45d6b18240..0000000000
--- a/doc/release/2.3.1.rst
+++ /dev/null
@@ -1,623 +0,0 @@
-Tarantool 2.3.1
-===============
-
-Release: :tarantool-release:`2.3.1`
-Date: 2019-12-31 Tag: 2.3.1-0-g5a1a220
-
-Overview
---------
-
-2.3.1 is the beta version of the 2.3 release series.
-
-This release introduces roughly 38 features and resolves 102 bugs since
-the 2.2.1 version. There may be bugs in less common areas. If you find
-any, feel free to report an issue at
-`GitHub `_.
-
-Notable changes are:
-
-- field name and JSON path updates
-- anonymous replica
-- new DOUBLE SQL type (and new ‘double’ box field type)
-- stored and indexed decimals (and new ‘decimal’ field type)
-- ``fiber.top()``
-- feed data from a memory during replica initial join
-- SQL prepared statements
-- sessions settings service space
-
-Aside of that many other features have been implemented and considerable
-amount of bugs have been fixed.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `_
-using the ``box.schema.upgrade()`` procedure to unlock all the new
-features of the 2.x series.
-
-Functionality added or changed
-------------------------------
-
-There are changes labeled with **[Breaking change]**. It means that the
-old behaviour was considered error-prone and therefore changed to
-protect users from unintended mistakes. However, there is a little
-probability that someone can lean on the old behaviour, and this label
-is to bring attention to the things that have been changed.
-
-SQL
-~~~
-
-- Introduce prepared statements support and prepared statements cache
- (:tarantool-issue:`2592`, :tarantool-issue:`3292`). Using of prepared statements allows to eliminate
- overhead of transmitting a statement text over a network and parsing
- it each time before execution. Aside of this, it allows to acquire
- binding parameters and result set columns metainformation prior to
- actual execution of a statement. This feature is vital for
- implementing standard DBMS APIs, such as ODBC and JDBC.
-
-- **[Breaking change]** Introduce \_session_setting service space as
- replacement for PRAGMA keyword (:tarantool-issue:`4511`). All frontends (C, Lua, SQL,
- binary protocol) can use this space to access or update session
- settings. Removed ``count_changes``, ``short_column_names``,
- ``sql_compound_select_limit``, ``vdbe_addoptrace`` pragmas.
- Transformed others into \_session_settings tuples.
-
-- Extend SQL result set metadata (:tarantool-issue:`4407`), In addition to the ``name``
- and ``type`` fields, the ``collation``, ``is_nullable``,
- ``is_autoincrement``, and ``span`` fields are added. These new fields
- are shown when the ``full_metadata`` session setting is enabled but
- always sent via binary protocol.
-
-- Add an ability to disable check constraints (:tarantool-issue:`4244`). Example:
- ``ALTER TABLE foo {ENABLE|DISABLE} CHECK CONSTRAINT bar;``. For
- details of using from Lua, refer to
- `documentation `__.
-
-- AUTOINCREMENT for multipart primary key (:tarantool-issue:`4217`). The auto-increment
- feature can be set to any ``INTEGER`` or ``UNSIGNED`` field of
- ``PRIMARY KEY`` using one of the two ways:
-
- 1. ``AUTOINCREMENT`` in column definition:
-
- .. code-block:: sql
-
- CREATE TABLE t (i INT, a INT AUTOINCREMENT, PRIMARY KEY (i, a));
- CREATE TABLE t (i INT AUTOINCREMENT, a INT, PRIMARY KEY (i, a));
-
- 2. ``AUTOINCREMENT`` in ``PRIMARY KEY`` definition:
-
- .. code-block:: sql
-
- CREATE TABLE t (i INT, a INT, PRIMARY KEY (i, a AUTOINCREMENT));
- CREATE TABLE t (i INT, a INT, PRIMARY KEY (i AUTOINCREMENT, a));
-
-- Allow to create a view from any CTE (common table expression) using
- ``WITH`` clause (:tarantool-issue:`4149`).
-
-- Support user-defined functions in SQL. ``box.schema.func.create()``
- API has been extended and should be used to make some function
- available in SQL. For details on fields added, refer to the
- description here: (:doc-issue:`879`).
- Usage of legacy mechanism\ ``box.internal.sql_function_create`` is
- forbidden now (:tarantool-issue:`2200`, :tarantool-issue:`2233`, :tarantool-issue:`4113`).
-
-- Scalar functions ``MIN/MAX`` are renamed to ``LEAST/GREATEST``
- (:tarantool-issue:`4405`)
-
-- Introduce ``WITH ENGINE`` clause for ``CREATE TABLE`` statement
- (:tarantool-issue:`4422`). To allow a user to specify engine as per table option,
- ``CREATE TABLE`` statement has been extended with optional
- ``WITH ENGINE = `` clause. This clause comes at the end
- of ``CREATE TABLE`` statement. For example:
-
- .. code-block:: sql
-
- CREATE TABLE t_vinyl (id INT PRIMARY KEY) WITH ENGINE = 'vinyl';
-
- Refer also to `SQL reference
- documentation `__.
-
-- Introduce ``DOUBLE`` type (:tarantool-issue:`3812`).
-
-- Display line and position in syntax errors (:tarantool-issue:`2611`).
-
-- Make constraint names unique within a table (:tarantool-issue:`3503`).
- The SQL standard requires ``PRIMARY KEY``, ``UNIQUE``, ``FOREIGN KEY`` and ``CHECK``
- constraints to have the unique name within a table. Now Tarantool/SQL
- follows this requirement. Please refer to (:doc-issue:`1053`).
-
-- Optimization: a tuple already stores a map of offsets of indexed
- values. After the change, when a field after an indexed field is
- accessed, the tuple is decoded from the indexed field rather then
- from beginning (:tarantool-issue:`4267`).
-
-Core
-~~~~
-
-- **[Breaking change]** Drop ``rows_per_wal`` option of ``box.cfg()``
- in favor of ``wal_max_size`` (:tarantool-issue:`3762`).
-- Decimals can now be stored in spaces. The corresponding field type is
- introduced: ``decimal``. Decimal values are also allowed in the
- ``scalar``, ``any``, and ``number`` fields. Decimal values can be
- indexed (:tarantool-issue:`4333`). Also refer to documentation on
-
- - `data
- types `__
- - `:create_index() `__
-
-- Add support for decimals in update operations (:tarantool-issue:`4413`).
- ``tuple:update()`` and ``:update()`` now support
- decimal operands for arithmetic operations (‘+’ and ‘-’). The syntax
- is as usual, for example:
-
- .. code-block:: tarantoolsession
-
- tarantool> d = box.tuple.new(decimal.new('1'))
- ---
- ...
- tarantool> d:update{{'+', 1, decimal.new('0.5')}}
- ---
- - [1.5]
- ...
-
- Insertion (‘!’) and assignment (‘=’) are also supported. See also the
- full description of the ``update()`` function in
- `documentation `__.
-- Allow to encode/decode decimals to ``MsgPack`` and to encode to
- ``YAML`` and ``JSON``. Part of (:tarantool-issue:`4333`);
- `485439e3 `__;
- documentation: (:doc-issue:`992`).
-- Introduce field name and JSON path updates (:tarantool-issue:`1261`).
-
- Example of update
- by a field name: ``box.space.test:update({{'=', 'foo', 42}})``.
-
- JSON path update allows to change a value that is nested inside an array
- or a map. It provides convenient syntax (that is also available for
- connectors), consumes less space in WAL than replace, and is faster
- than replaces written in Lua. Example:
- ``box.space.test:update({{'=', 'foo.bar[1]', 42}})``. Please refer to
- documentation here: (:doc-issue:`1051`).
-- Introduce ``double`` field type. Part of (:tarantool-issue:`3812`). Though is not very
- usable in Lua, this new field type has been added in ``box`` as a
- base for the SQL ``DOUBLE`` type.
-- vinyl: don’t pin index for iterator lifetime (prerequisite for
- snapshot iterators).
- `02da82ea `_
-- vinyl: don’t exempt dropped indexes from dump and compaction
- (prerequisite for snapshot iterators).
- `d7387ec9 `_
-
-Replication
-~~~~~~~~~~~
-
-- ``box.info().replication`` shows applier/replay’s latest error
- message. Now it also shows the errno description for system errors
- when it’s applicable (:tarantool-issue:`4402`).
-- Feed data from a memory during replica initial join (:tarantool-issue:`1271`). Aside of
- obvious speed up from reading from a memory instead of a disk, a read
- view that is acquired to perform an initial join may be a way more
- recent, that eliminates the need to play all xlog files since a last
- snapshot. Now relay need to send only changes that occur during
- initial join to finally join a replica.
-- Introduce a new replica type - anonymous replica (:tarantool-issue:`3186`). Anonymous
- replica is not present in cluster space and so there is no limitation
- for its count in a replica set. Anonymous replica is read-only, but
- can be deanonymized and enabled for writes. Please refer to
- documentation: (:doc-issue:`1050`) for
- API and details.
-
-Lua
-~~~
-
-- Expose ``require('tarantool').package`` which is ‘Tarantool’ for the
- community version and ‘Tarantool Enterprise’ for the enterprise
- version (:tarantool-issue:`4408`). This value is already displayed in a console
- greeting and in ``box.info().package``, but it was not accessible
- from Lua before the first ``box.cfg{<...>}`` call.
-- decimal: add modulo operator (``decimal.new(172.51) % 1 == 0.51``),
- part of (:tarantool-issue:`4403`).
-- **[Breaking change]** JSON and msgpack serializers now raise an error
- when a depth of data nesting exceeds the ``encode_max_depth`` option
- value. The default value of the option has been increased from 32 to
- 128. The ``encode_deep_as_nil`` option is added to give an ability to
- set the old behaviour back (:tarantool-issue:`4434`). Notes:
-
- - These options can be set by using ``json.cfg({<...>})`` or
- ``msgpack.cfg({<...>})``.
- - ``box`` data modification functions (``insert``, ``replace``,
- ``update`` and ``upsert``) follow the options of the default
- msgpack serializer instance, and now these functions raise an
- error on too many levels of nested data by default rather than cut
- the data silently. This behaviour can be configured using
- ``msgpack.cfg({<...>})``.
- - previously,\ ``box.tuple.new()``, ``space:update()``,
- ``space:upsert()`` and several other functions did not follow
- ``encode_max_depth`` option; now they do (see also the **Bug
- fixed** section).
- - previously,\ ``json.cfg`` and ``msgpack.cfg`` tables was not
- updated when an option had changed; now they show actual values
- (see also the **Bug fixed** section).
-
-- Show line and column in ``json.decode()`` errors (:tarantool-issue:`3316`).
-- Exit gracefully when a main script throws an error: notify systemd,
- log the error (:tarantool-issue:`4382`).
-- key_def: accept both ``field`` and ``fieldno`` in
- ``key_def.new(<...>)`` (:tarantool-issue:`4519`). Originally ``key_def.new(<...>)``
- accepted only ``fieldno`` to allow creation with
- ``.parts`` as argument. However, index definition
- format (``.create_index(<...>)``) is different and
- requires ``field``. Now both are supported.
-- Enable ``__pairs`` and ``__ipairs`` metamethods from Lua 5.2 (:tarantool-issue:`4560`).
- We still conform Lua 5.1 API that is not always compatible with Lua
- 5.2. The change is only about those metamethods.
-- Implement a new function ``fiber.top()``. It returns a table with all
- fibers alive and lists their CPU consumption. For details, refer to
- `documentation `__.
- (:tarantool-issue:`2694`)
-- Expose ``errno`` field for box.error objects representing system
- errors. Part of (:tarantool-issue:`4402`).
-
-HTTP client
-^^^^^^^^^^^
-
-- Add ``accept_encoding`` option for HTTP client. For details, refer to
- description here: (:doc-issue:`1036`).
- (:tarantool-issue:`4232`).
-- Add proxy server related options for HTTP client:
-
- - ``proxy``
- - ``proxy_port``
- - ``proxy_user_pwd``
- - ``no_proxy`` For details, refer to description
- here: :doc-issue:`896` (:tarantool-issue:`4477`,
- :tarantool-issue:`4472`).
-
-Misc
-~~~~
-
-- tarantoolctl: allow to start instances with delayed ``box.cfg{}``
- (:tarantool-issue:`4435`).
-- Add package builds and deployment for the following Linux distros:
-
- - Ubuntu 19.10 Eoan Ermine (:tarantool-issue:`4583`)
- - CentOS 8 (:tarantool-issue:`4543`)
- - Fedora 31 (:tarantool-issue:`4612`)
-
-Bugs fixed
-----------
-
-SQL
-~~~
-
-- Modify type of a binding value in query response metainformation:
- always return INTEGER rather than UNSIGNED, even for positive values.
- This is necessary for consistency with integer literal types.
- `b7d595ac `__.
-- Reuse noSQL way to compare floating point values with integral ones.
- This allows to handle corner cases like
- ``SELECT 18446744073709551615.0 > 18446744073709551615`` uniformly.
- `73a4a525 `__.
-- Create or alter a table with a foreign key may lead to wrong bytecode
- generation that may cause a crash or wrong result (:tarantool-issue:`4495`).
-- Allow to update a scalar value using SQL in a space that was created
- from Lua and contains ``array``, ``map`` or ``any`` fields (:tarantool-issue:`4189`).
- Note: Tarantool/SQL provides operations on scalar types and does not
- support ‘array’ and ‘map’ per se.
-- Allow nil to be returned from user-defined function (created with
- ``box.schema.func.create()``).
- `1b39cbcf `__
-- Don’t drop a manually created sequence in DROP TABLE statement.
- `a1155c8b `__
-- Remove grants associated with the table in DROP TABLE statement
- (:tarantool-issue:`4546`).
-- Fix segfault in ``sql_expr_coll()`` when ``SUBSTR()`` is called
- without arguments.
- `4c13972f `__
-- Fix converting of floating point values from range [2^63, 2^64] to
- integer (:tarantool-issue:`4526`).
-- Make type string case lower everywhere: in error messages, meta
- headers, and results of the ``typeof()`` SQL function.
- `ee60d31d `__
-- Make the\ ``LENGTH()`` function to accept boolean argument (:tarantool-issue:`4462`).
-- Make implicit cast from BOOLEAN to TEXT to return uppercase for
- consistency with explicit cast (:tarantool-issue:`4462`).
-- Fix segfault on binding a value as LIKE argument (:tarantool-issue:`4566`).
-- For user-defined functions, verify that the returned value is of the
- type specified in the function definition (:tarantool-issue:`4387`).
-- Start using comprehensive serializer ``luaL_tofield()`` to prepare
- LUA arguments for user-defined functions. This allows to support
- cdata types returned from Lua function (:tarantool-issue:`4387`).
-- An error is raised when a user-defined function returns too many
- values (:tarantool-issue:`4387`).
-- Store a name of user-defined function in VDBE program instead of
- pointer. This allows to normally handle the situation when a
- user-defined function has been deleted to the moment of the VDBE code
- execution (:tarantool-issue:`4176`).
-- Fix casting of VARBINARY value to a NUMBER (:tarantool-issue:`4356`)
-- Print the data type instead of the data itself in ``diag_set()`` in
- case of binary data. The reason of this patch is that ``LibYAML``
- converts the whole error message to ``base64`` in case of
- non-printable symbols. Part of (:tarantool-issue:`4356`).
-- Remove ``ENGINE`` from the list of the reserved keywords and allow to
- use it for identifiers: we are going to use the word as a name of
- some fields for tables forming informational schema.
-- Fix segfault when ``LEAST()`` or ``GREATEST()`` built-in function is
- invoked without arguments (:tarantool-issue:`4453`).
-- Fix dirty memory access when constructing query plan involving search
- of floating point value in index over integer field (:tarantool-issue:`4558`).
-- ``INDEXED BY`` clause now obligates the query planner to choose
- provided index.
- `49fedfe3 `__
-
-
-
-Core
-~~~~
-
-- Make functional index creation transactional (:tarantool-issue:`4401`)
-- Detect a new invalid JSON path case (:tarantool-issue:`4419`)
-- Randomize the next checkpoint time after manual ``box.snapshot()``
- execution also (:tarantool-issue:`4432`).
-- Fix memory leak in call/eval in case of a transaction is not
- committed (:tarantool-issue:`4388`)
-- Eliminate warning re ``strip_core`` option of ``box.cfg()`` on MacOS
- and FreeBSD (:tarantool-issue:`4464`)
-- The msgpack serializer that is under ``box.tuple.new()`` (called
- tuple serializer) now reflects options set by
- ``msgpack.cfg({<...>})``. Part of (:tarantool-issue:`4434`). Aside of
- ``box.tuple.new()`` behaviour itself, it may affect
- ``tuple:frommap()``, methods of key_def Lua module, tuple and table
- merger sources, net.box results of ``:select()`` and ``:execute()``
- calls, and xlog Lua module.
-- ``box`` functions ``update`` and ``upsert`` now follow
- ``msgpack.cfg({encode_max_depth = <...>}`` option. Part of (:tarantool-issue:`4434`).
-- fiber: make sure the guard page is created; refuse to create a new
- fiber otherwise (:tarantool-issue:`4541`). It is possible in case of heavy memory
- usage, say, when there is no resources to split VMAs.
-- recovery: build secondary indices in the hot standby mode without
- waiting till the main instance termination (:tarantool-issue:`4135`).
-- Fix error message for incorrect return value of functional index
- extractor function (:tarantool-issue:`4553`).
-
- - Was: “Key format doesn’t match one defined in functional index ‘’
- of space ‘’: supplied key type is invalid: expected boolean”
- - Now: “<…>: expected array”
-
-- JSON path index now consider is_nullable property when a space had a
- format (:tarantool-issue:`4520`).
-- Forbid ``00000000-0000-0000-0000-000000000000`` as the value of
- ``box.cfg({<...>})`` options: ``replicaset_uuid`` and
- ``instance_uuid`` (:tarantool-issue:`4282`). It did not work as expected: the nil UUID
- was treated as absence of the value.
-- Update cache of universe privileges without reconnect (:tarantool-issue:`2763`).
-- net.box: fix memory leak in ``net_box:connect()`` (:tarantool-issue:`4588`).
-- net.box: don’t fire the ``on_connect`` trigger on schema update
- (:tarantool-issue:`4593`). Also don’t fire the ``on_disconnect`` trigger if a connection
- never entered into the ``active`` state (e.g. when the first schema
- fetch is failed).
-- func: fix use-after-free on function unload.
- `fa2893ea `__
-- Don’t destroy a session until ``box.session.on_disconnect(<...>)``
- triggers are finished (:tarantool-issue:`4627`). This means, for example, that
- ``box.session.id()`` can be safely invoked from the ``on_disconnect``
- trigger. Before this change ``box.session.id()`` returned garbage
- (usually 0) after yield in the ``on_disconnect`` trigger. *Note*:
- `tarantool/queue `_ module is
- affected by this problem in `some
- scenarios `_. It is
- especially suggested to update Tarantool at least to this release if
- you’re using this module.
-- func: Fix ``box.schema.func.drop(<..>)`` to unload unused modules
- (:tarantool-issue:`4648`). Also fix ``box.schema.func.create(<..>)`` to avoid loading a
- module again when another function from the module is loaded.
-- Encode Lua number -2^63 as integer in ``msgpack.encode()`` and box’s
- functions (:tarantool-issue:`4672`).
-- Forbid to drop admin’s universe access.
- `2de398ff `__.
- Bootstrap and recovery work on behalf of admin and should be able to
- fill in the system spaces. Drop of admin’s access may lead to an
- unrecoverable cluster.
-- Refactor rope library to eliminate virtual calls to increase
- performance of the library (mainly for JSON path updates).
- `baa4659c `__
-- Refactor update operation code to avoid extra region-related
- arguments to take some performance boost (mainly for JSON path
- updates).
- `dba9dba7 `__
-- Error logging has been removed in ``engine_find()`` to get rid of the
- error message duplication.
- `35177fe0 `__.
-- decimal: Fix encoding of numbers with positive exponent. Follow-up
- (:tarantool-issue:`692`).
-- Increment schema version on DDL operations where it did not performed
- before: alter of trigger, check constraint and foreign key
- constraint. Part of (:tarantool-issue:`2592`).
-
-
-
-Replication
-~~~~~~~~~~~
-
-- Stop relay on subscribe error (:tarantool-issue:`4399`).
-- Set ``last_row_time`` to ``now`` in ``relay_new`` and
- ``relay_start`` (:tarantool-issue:`4431`).
-- Do not abort replication on ER_UNKNOWN_REPLICA (:tarantool-issue:`4455`).
-- Enter orphan mode on manual replication configuration change (:tarantool-issue:`4424`).
-- Disallow bootstrap of read-only masters (:tarantool-issue:`4321`).
-- Prefer to bootstrap a replica from a fully bootstrapped instance
- rather than from an instance that is in the process of bootstrapping
- (:tarantool-issue:`4527`). This change enables the case when two nodes (B, C) are being
- bootstrapped simultaneously using the one that is already
- bootstrapped (A), while A is configured to replicate from {B, C} and
- B – from {A, C}.
-- Return immediately from ``box.cfg{<...>}`` when an instance is
- reconfigured with ``replication_connect_quorum = 0`` (:tarantool-issue:`3760`). This
- change also fixes the behaviour of reconfiguration with non-zero
- ``replication_connect_quorum``: ``box.cfg{<...>}`` returns
- immediately regardless of whether connections to upstreams are
- established.
-- Apply replication settings of ``box.cfg({<...>})`` in a strict order
- (:tarantool-issue:`4433`).
-- Auto reconnect a replica if password is invalid (:tarantool-issue:`4550`).
-- ``box.session.su()`` now correctly reports an error for
- ```` longer than ``BOX_NAME_MAX`` which is 65000.
- `8b6bdb43 `__
-
- - Was: ‘C++ exception’
- - Now: ‘name length <…> is greater than BOX_NAME_MAX’
-
-- Use empty password when a URI in ``box.cfg{replication = <...>}`` is
- like ``login@host:port`` (:tarantool-issue:`4605`). The behaviour matches the
- net.box’s one now. Explicit ``login:@host:port`` was necessary
- before, otherwise a replica displayed the following error: > Missing
- mandatory field ‘tuple’ in request
-- Fix segfault during replication configuration
- (``box.cfg{replication = <...>}`` call) (:tarantool-issue:`4440`,
- :tarantool-issue:`4576`, :tarantool-issue:`4586`, :tarantool-issue:`4643`).
-- Cancel a replica joining thread forcefully on Tarantool instance
- exit (:tarantool-issue:`4528`).
-- Fix the applier to run the ``.before_replace`` trigger during
- initial join (:tarantool-issue:`4417`).
-
-
-
-Lua
-~~~
-
-- Fix segfault on ``ffi.C._say()`` without filename (:tarantool-issue:`4336`).
-- Fix ``pwd.getpwall()`` and ``pwd.getgrall()`` hang on CentOS 6 and
- FreeBSD 12 (:tarantool-issue:`4428`, :tarantool-issue:`4447`).
-- json.encode() now follows ``encode_max_depth`` option for arrays that
- leads to a segfault on recursive Lua tables with numeric keys
- (:tarantool-issue:`4366`).
-- fio.mktree() now reports an error for existing non-directory file
- (:tarantool-issue:`4439`).
-- ``json.cfg`` and ``msgpack.cfg`` tables were not updated when an
- option is changed. Part of (:tarantool-issue:`4434`).
-- Fix handling of a socket read error in the console client
- (``console.connect()`` or ``tarantoolctl connect/enter <...>``).
- `89ec1d97 `__
-- Handle the “not enough memory” error gracefully when it is raised
- from ``lua_newthread()`` (:tarantool-issue:`4556`). There are several cases when a new
- Lua thread is created:
-
- - Start executing a Lua function call or an eval request (from a
- binary protocol, SQL or with ``box.func.<...>:call()``).
- - Create of a new fiber.
- - Start execution of a trigger.
- - Start of encoding into a YAML format (``yaml.encode()``).
-
-- Fix stack-use-after-scope in ``json.decode()`` (:tarantool-issue:`4637`).
-- Allow to register several functions using
- ``box.schema.func.create()``, whose names are different only in
- letters case (:tarantool-issue:`4561`). This make function names work consistently with
- other names in tarantool (except SQL, of course).
-- Fix decimal comparison with nil. Follow-up (:tarantool-issue:`692`).
-- Fix decimal comparison with ``box.NULL`` (:tarantool-issue:`4454`).
-- A pointer returned by ``msgpack.decode*(cdata<[char] const *>)``
- functions can be assigned to buffer.rpos now (and the same for
- msgpackffi) (:tarantool-issue:`3926`). All those functions now return
- ``cdata`` or ``cdata`` depending of a passed
- argument. Example of the code that did not work:
- ``res, buf.rpos = msgpack.decode(buf.rpos, buf:size())``.
-- lua/pickle: fix typo that leads to reject of negative integers for
- ‘i’ (integer) and ‘N’ (big-endian integer) formats in pickle.pack().
- `e2d9f664 `__
-
-
-
-HTTP client
-^^^^^^^^^^^
-
-- Use bundled ``libcurl`` rather than system-wide by default.
- (:tarantool-issue:`4318`, :tarantool-issue:`4180`, :tarantool-issue:`4288`,
- :tarantool-issue:`4389`, :tarantool-issue:`4397`). This closes several known
- problems that were fixed in recent libcurl versions, including segfaults,
- hangs, memory leaks and performance problems.
-- Fix assertion fail after a curl write error (:tarantool-issue:`4232`).
-- Disable verbose mode when ``{verbose = false}`` is passed.
- `72613bb0 `__
-
-Console Lua output
-^^^^^^^^^^^^^^^^^^
-
-A new Lua output format is still in the alpha stage and has the known
-flaws, but we are working to make it rich and stable.
-
-- Output ``box.NULL`` as ``"box.NULL"`` rather than
- ``"cdata: NULL"``, part of (:tarantool-issue:`3834`) (in quotes for now, yes,
- due to (:tarantool-issue:`4585`)
-- Add semicolon (``;``) as responses delimiter (EOS, end of
- stream/statement), analogue of YAMLs end-of-document (``...``)
- marker. This is vital for remote clients to determine the end of a
- particular response, part of (:tarantool-issue:`3834`).
-- Fix hang in the console client (``console.connect()`` or
- ``tarantoolctl connect/enter <...>``) after
- ``\set output lua[,block]`` command, part of (:tarantool-issue:`3834`). In order to
- overcome it, two changes have been made:
-
- - Parse ``\set output lua[,block]`` command on a client prior to
- sending it to a server, store current responses delimiter (EOS)
- and use it to determine end of responses.
- - Send ``\set output <...>`` command with a default output mode when
- establishing a connection (it is matter if different default modes
- are set).
-
-- Provide an ability to get or set current responses delimiter using
- ``console.eos([<...>])``, part of (:tarantool-issue:`3834`).
-
-LuaJIT
-~~~~~~
-
-- Fix fold machinery misbehaves (:tarantool-issue:`4376`).
-- Fix for ``debug.getinfo(1,'>S')`` (:tarantool-issue:`3833`).
-- Fix ``string.find`` recording (:tarantool-issue:`4476`).
-- Fix the “Data segment size exceeds process limit” error on
- FreeBSD/x64: do not change resource limits when it is not necessary
- (:tarantool-issue:`4537`).
-- fold: keep type of emitted CONV in sync with its mode.
- `LuaJIT#524 `__ This
- fixes the following assertion fail: > asm_conv: Assertion
- \`((IRType)((ir->t).irt & IRT_TYPE)) != st’ failed
-
-
-
-Misc
-~~~~
-
-- Support ``systemd``\ ’s NOTIFY_SOCKET on OS X (:tarantool-issue:`4436`).
-- Fix linking with static ``openssl`` library (:tarantool-issue:`4437`).
-- Get rid of warning re empty ``NOTIFY_SOCKET`` variable (:tarantool-issue:`4305`).
-- rocks: fix ‘invalid date format’ error when installing a packed rock
- (:tarantool-issue:`4481`).
-- Remove libyaml from rpm/deb dependencies, because we use bunbled
- version of libyaml for the packages (since 2.2.1) (:tarantool-issue:`4442`).
-- Fix CLI boolean options handling in ``tarantoolctl cat <...>``, such
- as ``--show-system`` (:tarantool-issue:`4076`).
-- Fix segfault (out of bounds access) when a stack unwinding error
- occurs at backtrace printing (:tarantool-issue:`4636`). Backtrace is printed on the
- SIGFPE and SIGSEGV signals or when LuaJIT finds itself in the
- unrecoverable state (``lua_atpanic()``).
-- Clear terminal state on panic (:tarantool-issue:`4466`).
-- access: fix the invalid error type ``box.session.su()`` raises for a
- not found user
-
- - was: ``SystemError``
- - now: ``ClientError``
-
-Building from sources
-^^^^^^^^^^^^^^^^^^^^^
-
-- Fix for GCC 4.8.5, which is default version on CentOS 7 (:tarantool-issue:`4438`).
-- Fix OpenSSL linking problems on FreeBSD (:tarantool-issue:`4490`).
-- Fix linking problems on Mac OS when several toolchains are in PATH
- (:tarantool-issue:`4587`).
-- Fix GCC 9 warning on strncpy() (:tarantool-issue:`4515`).
-- Fix build on Mac with gcc and XCode 11 (:tarantool-issue:`4580`).
-- Fix LTO warnings that were treated as errors in a release build
- (:tarantool-issue:`4512`).
diff --git a/doc/release/2.3.2.rst b/doc/release/2.3.2.rst
deleted file mode 100644
index c91e42cfea..0000000000
--- a/doc/release/2.3.2.rst
+++ /dev/null
@@ -1,179 +0,0 @@
-Tarantool 2.3.2
-===============
-
-Release: :tarantool-release:`2.3.2`
-Date: 2020-04-20 Tag: 2.3.2-1-g9be641b
-
-Overview
---------
-
-2.3.2 is the first stable version of the 2.3 release series. The label
-stable means we have all planned features implemented and we see no
-high-impact issues.
-
-This release resolves roughly 39 issues since the latest beta version.
-There may be bugs in less common areas, please feel free to file an
-issue at `GitHub `__.
-
-Please note, this release contains **no new features**.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the box.schema.upgrade() procedure to unlock all the new features
-of the 2.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- :ref:`fiber.storage ` is cleaned between requests,
- and can be used as a
- request-local storage. Previously ``fiber.storage`` could contain
- some old values in the beginning of an iproto request execution, and
- it needed to be nullified manually. Now the cleanup is unneeded
- (:tarantool-issue:`4662`).
-- ``tuple``/``space``/``index``:``update()``/``upsert()`` were fixed
- not to turn a value into an infinity when a float value was added to
- or subtracted from a float column and exceeded the float value range
- (:tarantool-issue:`4701`).
-- Fix potential execution abort when operating the system runs under
- heavy memory load (:tarantool-issue:`4722`).
-- Make RTREE indexes handle the out of memory error: before this fix,
- OOM during the recovery of an RTREE index resulted in segmentation
- fault (:tarantool-issue:`4619`).
-- Fix the error message returned on using an already dropped sequence
- (:tarantool-issue:`4753`).
-- Add cancellation guard to avoid WAL thread stuck (:tarantool-issue:`4127`).
-- Fix execution abort when ``memtx_memory`` and ``vinyl_memory`` are
- set to more than 4398046510080 bytes. Now an error message is
- returned (:tarantool-issue:`4705`).
-- Add Lua output format support for ``box.session.push()`` (:tarantool-issue:`4686`).
-
-Replication
-~~~~~~~~~~~
-
-- Fix rebootstrap procedure not working in case replica itself is
- listed in ``box.cfg.replication`` (:tarantool-issue:`4759`).
-- Fix possible user password leaking via replication logs (:tarantool-issue:`4493`).
-- Refactor vclock map to be exactly 4 bytes in size to fit all 32
- replicas regardless of the compiler used
- (https://github.com/tarantool/tarantool/commit/e5679980aa5f813553a95ab7d31f111dd0893df6).
-- Fix crash when the replication applier rollbacks a transaction
- (:tarantool-issue:`4730`, :tarantool-issue:`4776`).
-- Fix segmentation fault on master side when one of the replicas
- transitions from anonymous to normal (:tarantool-issue:`4731`).
-- Local space operations are now counted in 0th vclock component. Every
- instance may have its own 0-th vclock component not matching others’.
- Local space operations are not replicated at all, even as NOPs
- (:tarantool-issue:`4114`).
-- Gc consumers are now ordered by their vclocks and not by vclock
- signatures. Only the WALS that contain no entries needed by any of
- the consumers are deleted (:tarantool-issue:`4114`).
-
-Lua
-~~~
-
-- json: ``:decode()`` does not spoil instance’s options with per-call
- ones (when it is called with the second argument) (:tarantool-issue:`4761`).
-- Handle empty input for ``uri.format()`` properly (:tarantool-issue:`4779`).
-- ``os.environ()`` is now changed when ``os.setenv()`` is called
- (:tarantool-issue:`4733`).
-- ``netbox.self:call/eval()`` now returns the same types as
- ``netbox_connection:call``/``eval``. Previously it could return a
- tuple or ``box.error`` cdata (:tarantool-issue:`4513`).
-- ``box.tuple.*`` namespace is cleaned up from private functions.
- :doc:`/reference/reference_lua/box_tuple/is` description is added to documentation (:tarantool-issue:`4684`).
-- ``tarantoolctl rocks search``: fix the ``--all`` flag (:tarantool-issue:`4529`).
-- ``tarantoolctl rocks remove``: fix the ``--force`` flag (:tarantool-issue:`3632`).
-- libev: backport fix for listening for more then 1024 file descriptors
- on Mac OS (:tarantool-issue:`3867`).
-
-SQL
-~~~
-
-- Fix ``box.stat()`` behavior: now it collects statistics on the
- ``PREPARE`` and ``EXECUTE`` methods as expected (:tarantool-issue:`4756`).
-- Add an empty body to the ``UNPREPARE`` IProto response (:tarantool-issue:`4769`).
-- Reset all the placeholders’ bound values after execution of a
- prepared statement (:tarantool-issue:`4825`).
-- The inserted values are inserted in the order in which they are given
- in case of INSERT into space with autoincrement (:tarantool-issue:`4256`).
-
-HTTP client
-~~~~~~~~~~~
-
-- When building Tarantool with bundled ``libcurl``, link it with the
- ``c-ares`` library by default (:tarantool-issue:`4591`).
-
-LuaJIT
-~~~~~~
-
-- ``__pairs``/``__ipairs`` metamethods handling is removed since we
- faced the issues with the backward compatibility between Lua 5.1 and
- Lua 5.2 within Tarantool modules as well as other third party code
- (:tarantool-issue:`4770`).
-
-- Introduce ``luajit-gdb.py`` extension with commands for inspecting
- LuaJIT internals. The extension obliges one to provide gdbinfo for
- ``libluajit``, otherwise loading fails. The extension provides the
- following commands:
-
- - ``lj-arch`` dumps values of LJ_64 and LJ_GC64 macro definitions
- - ``lj-tv`` dumps the type and GCobj info related to the given
- TValue
- - ``lj-str`` dumps the contents of the given GCstr
- - ``lj-tab`` dumps the contents of the given GCtab
- - ``lj-stack`` dumps Lua stack of the given lua_State
- - ``lj-state`` shows current VM, GC and JIT states
- - ``lj-gc`` shows current GC stats
-
-- Fix string to number conversion: current implementation respects the
- buffer length (:tarantool-issue:`4773`).
-
-- “FFI sandwich” (\*) detection is introduced. If sandwich is detected
- while trace recording the recording is aborted. The sandwich detected
- while mcode execution leads to the platform panic.
-
-- luaJIT_setmode call is prohibited while mcode execution and leads to
- the platform panic.
-
-(\*) The following stack mix is called FFI sandwich:
-
- Lua-FFI -> C routine -> Lua-C API -> Lua VM
-
-This sort of re-entrancy is explicitly not supported by LuaJIT compiler.
-For more info see :tarantool-issue:`4427`.
-
-Vinyl
-~~~~~
-
-- Fix assertion fault due to triggered dump process during secondary
- index build (:tarantool-issue:`4810`).
-
-Misc
-~~~~
-
-- Fix crashes at attempts to use ``-e`` and ``-l`` command line options
- concatenated with their values, like this: ``-eprint(100)``
- (:tarantool-issue:`4775`).
-- Fix inability to upgrade from 2.1 if there was an automatically
- generated sequence (:tarantool-issue:`4771`).
-- Update ``libopenssl`` version to 1.1.1f since the previous one was
- EOLed (:tarantool-issue:`4830`).
-
-Building from sources
-^^^^^^^^^^^^^^^^^^^^^
-
-- Update the ``decNumber`` library to silence the build warning
- produced on too long integer constant
- (https://github.com/tarantool/tarantool/commit/aab03a735c7a215b4371ef834f7d08432b1bf0f7).
-- Fix static build (``-DBUILD_STATIC=ON``) when ``libunwind`` depends
- on ``liblzma`` (:tarantool-issue:`4551`).
diff --git a/doc/release/2.3.3.rst b/doc/release/2.3.3.rst
deleted file mode 100644
index 0cfb2ce962..0000000000
--- a/doc/release/2.3.3.rst
+++ /dev/null
@@ -1,100 +0,0 @@
-Tarantool 2.3.3
-===============
-
-Release: :tarantool-release:`2.3.3`
-Date: 2020-07-17 Tag: 2.3.3-1-g43af95e
-
-Overview
---------
-
-2.3.3 is the last stable version of the 2.3 release series. The label
-stable means we have all planned features implemented and we see no
-high-impact issues.
-
-This release resolves roughly 26 issues since the latest stable version.
-There may be bugs in less common areas, please feel free to file an
-issue at `GitHub `__.
-
-Please note, this release contains **no new features**.
-
-Compatibility
--------------
-
-Tarantool 2.x is backward compatible with Tarantool 1.10.x in binary
-data layout, client-server protocol and replication protocol.
-
-Please
-`upgrade `__
-using the box.schema.upgrade() procedure to unlock all the new features
-of the 2.x series.
-
-Bugs fixed
-----------
-
-Core
-~~~~
-
-- Fixed a bug in altering a normal index to a functional one (n/a).
-- Fixed a couple of internal symbols dangling in global namespace \_G
- (:tarantool-issue:`4812`).
-- Fixed bug when on_shutdown triggers were not executed after EOF
- (:tarantool-issue:`4703`).
-- Fixed a bug in C module reloading (:tarantool-issue:`4945`).
-- Fixed assert outdated due to multikey index arrival (:tarantool-issue:`5132`).
-- Fixed confusing implicit requirements for tuple fields (:tarantool-issue:`5027`).
-- Added needed key validation to space_before_replace (:tarantool-issue:`5017`).
-- Fixed check of index field map size which led to crash (:tarantool-issue:`5084`).
-- Fixed NULL pointer dereference when merger is called via the binary
- protocol (say, via net.box) (:tarantool-issue:`4954`).
-- Fixed crash when invalid JSON was used in update() (:tarantool-issue:`5135`).
-
-Replication
-~~~~~~~~~~~
-
-- Fixed possible ER_TUPLE_FOUND error when bootstrapping replicas in an
- 1.10/2.1.1 cluster (:tarantool-issue:`4924`).
-- Fixed tx boundary check for half-applied txns (:tarantool-issue:`5125`).
-- Fixed replication tx boundaries after local space rework (:tarantool-issue:`4928`).
-
-Lua
-~~~
-
-- Fixed error while closing socket.tcp_server socket (:tarantool-issue:`4087`).
-
-SQL
-~~~
-
-- Fixed wrong order of rows as a result of query containing column of
- SCALAR type in ORDER BY clause (:tarantool-issue:`4697`).
-- Fixed bug with the display of collation for scalar fields in