Tarantool 1.9 | Tarantool
Release notes / Tarantool 1.9
Release notes / Tarantool 1.9

Tarantool 1.9

Tarantool 1.9

Release 1.9.0

Release type: stable. Release date: 2018-02-26. Tag: 1.9.0-4-g195d446.


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 to download and install a package for your operating system.

Functionality added or changed:

  • (Security) it is now possible to block/unblock users. Issue 2898.
  • (Security) new function box.session.euid() to return effective user. Effective user can be different from authenticated user in case of setuid functions or Issue 2994.
  • (Security) new super role, with superuser access. Grant ‘super’ to guest to disable access control. Issue 3022.
  • (Security) on_auth trigger is now fired in case of both successful and failed authentication. Issue 3039.
  • (Replication/recovery) new replication configuration algorithm: if replication doesn’t connect to replication_quorum peers in replication_connect_timeout seconds, the server start continues but the server enters the new orphan status, which is basically read-only, until the replicas connect to each other. Issues 3151 and 2958.
  • (Replication/recovery) after replication connect at startup, the server does not start processing write requests before syncing up syncing up with all connected peers.
  • (Replication/recovery) it is now possible to explicitly set instance_uuid and replica set uuid as configuration parameters. Issue 2967.
  • (Replication/recovery) box.once() no longer fails on a read-only replica but waits. Issue 2537.
  • (Replication/recovery) force_recovery can now skip a corrupted xlog file. Issue 3076.
  • (Replication/recovery) improved replication monitoring: shows peer ip:port and correct replication lag even for idle peers. Issues 2753 and 2689.
  • (Application server) new before triggers which can be used for conflict resolution in master-master replication. Issue 2993.
  • (Application server) http client now correctly parses cookies and supports http+unix:// paths. Issues 3040 and 2801.
  • (Application server) fio rock now supports file_exists(), rename() works across filesystems, and read() without arguments reads the whole file. Issues 2924, 2751 and 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. Issue 2874.
  • (Application server) provides a high-level overview of server memory usage, including networking, Lua, transaction and index memory. Issue 934.
  • (Database) it is now possible to add missing tuple fields to an index, which is very useful when adding an index along with the evolution of the database schema. Issue 2988.
  • (Database) lots of improvements in field type support when creating or altering spaces and indexes. Issues 2893, 3011 and 3008.
  • (Database) it is now possible to turn on is_nullable property on a field even if the space is not empty, the change is instantaneous. Issue 2973.
  • (Database) logging has been improved in many respects: individual messages (issues 1972, 2743, 2900), more logging in cases when it was useful (issues 3096, 2871).
  • (Vinyl storage engine) it is now possible to make a unique vinyl index non-unique without index rebuild. Issue 2449.
  • (Vinyl storage engine) improved UPDATE, REPLACE and recovery performance in presence of secondary keys. Issues 2289, 2875 and 3154.
  • (Vinyl storage engine) space:len() and space:bsize() now work for vinyl (although they are still not exact). Issue 3056.
  • (Vinyl storage engine) recovery speed has improved in presence of secondary keys. Issue 2099.
  • (Builds) Alpine Linux support. Issue 3067.