Skip to content

ChangeLog

Konstantin Osipov edited this page Feb 25, 2016 · 45 revisions

Tarantool 1.6.8

1.6.8 is a maintenance release in 1.6.x series.

Release tag is 1.6.8-524-g3fa321f

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, #1153.
  • Tuple comparator functions were optimized, providing up to 30% performance boost when an index key consists of 2, 3 or more parts, #969.
  • Tuple allocator changes give another 15% performance improvement, #1298.
  • Replication relay performance was improved by reducing the amount of data directory re-scans, #1150.
  • A random delay was introduced into snapshot daemon, reducing the chance that multiple instances take a snapshot at the same time, #732.
  • Sophia storage engine was upgraded to v2.1 (please note incompatible changes below):
    • 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.
  • #1219 Allow to remove servers with non-zero LSN from _cluster space.
  • #1183 net.box now automatically reloads space and index definitions.
  • #1311 The maximal number of indexes in space was increased to 128.
  • #1264 New native systemd configuration with support of instance management and daemon supervision (CentOS 7 and Fedora 22+ only). Please note Incompatible changes below).
  • Tarantool package was accepted to the official [Fedora repositories] (https://apps.fedoraproject.org/packages/tarantool). EPEL (CentOS/RHEL) packages are coming soon.
  • Tarantool brew formula (OS X) was accepted to the official Homebrew repository
  • #786 Clang compiler support was added on FreeBSD
  • #1249 Support for musl libc, used by Alpine Linux and Docker images, was added.
  • 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 #1117

* aarch64 qemu works well, but we don't have real hardware to check.

Bugs fixed

  • IPROTO: call returns wrong tuple #291
  • box.snapshot() aborts if the server is out of file descriptors #1094
  • Fix replication JOIN with Sophia #1239
  • Fix UPSERT with Sophia #1162
  • Fix stack overflow in Sophia on FreeBSD and/or OS X #1217 #1337
  • Box.once should wait before the server enters RW mode #1075
  • Crash in matras_touch() on TREE index #1185
  • index:count() is not O(1) #1323
  • box.tuple.new() segmentation fault on out of memory #1345
  • Sophia segfault if key is NULL #1280
  • tostring() is buggy for numbers #1279
  • box.schema.user.drop('test', { if_exists = true }) doesn't work #1266
  • Missing call to setgroups() before setuid() #1263
  • Assertion vclock_has(vclock, server_id) on attempt to JOIN read-only master #1230
  • Fix global variables in snapshot_daemon #1218
  • Crash tarantool on load CSV #1208
  • Release allocated memory after OutOfMemory error #1145
  • Address family not supported by protocol if localhost in uri #531
  • Error message for display of a net.box result #1177
  • segmentation fault with bsize #1189
  • Permission denied on tarantoolctl enter #1293
  • tarantoolctl fails to create /var/lib/tarantool/ directory on Debian #1246
  • Upgrading tarantool should not lead to a restart #1119
  • require() failed to find libraries on Ubuntu/Debian with Multiarch #1085
  • Improve YAML encoder and fix a crash on some binary data #883 #354 #1226
  • Fix language normalization in box.schema.func.create #1090
  • Fix misleading error messages #1042 #1342 #1240

A full list of fixed bugs is available at https://github.com/tarantool/tarantool/issues?q=milestone%3A1.6.8+is%3Aclosed

New rocks and packages

  • Tarantool Project switched to a new Docker-based cloud build infrastructure. The new buildbot significantly decreased the commit-to-package time. Official repositories at tarantool.org now contains the latest version of tarantool, all rock module and connectors.

  • Repositories at tarantool.org were moved to http://packagecloud.io cloud hosting (backed by Amazon AWS). Thanks packagecloud.io for the great service.

  • memcached - memcached protocol for Tarantool. Turns Tarantool into a persistent memcached with master-master replication.

  • migrate - a Tarantool rock for a migration from Tarantool 1.5 to 1.6

  • cqueues - embeddable asynchronous networking, threading, and notification framework for Lua (contributed by community).

Incompatible changes and possible caveats

  • RPM packages for CentOS 7 / RHEL 7 and Fedora 22+ now use native systemd configuration without legacy sysvinit shell scripts. Systemd provides it own facilities for multi-instance management. To upgrade please perform the following steps:
    • Ensure that INSTANCENAME.lua file is present in /etc/tarantool/instace.available
    • Stop INSTANCENAME using tarantoolctl stop INSTANCENAME
    • Start INSTANCENAME using systemctl start tarantool@INSTANCENAME
    • Enable INSTANCENAME during system boot using systemctl enable trantool@INTANCENAME
    • /etc/tarantool/instance.enabled directory is now deprecated for systemd-enabled platforms. Refer to http://tarantool.org/doc/book/administration.html 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 due to incompatible changes in Sophia upstream. Please consider to use Tarantool replication to upgrade. Tarantool Team managed to synchornize release cycles of Sophia and Tarantool. Sophia development now goes together hand in hand with Tarantool: 1.6.x series will receive all bugfixes. All features will go to 1.7.x series. #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 infrastructure.
  • Please update your yum.repos.d and/or apt sources.list.d according to instructions at http://tarantool.org/download.html

About Tarantool. Tarantool is a general purpose database with MsgPack/JSON data format, ACID transactions, secondary indexes, master-master replication, multiple storage engines (persistent in-memory and on-disk) and flexible Lua and C/C++ stored procedures support. The development process is fully open and source code is available under BSD license from http://tarantool.org and https://github.com/tarantool/tarantool

Clone this wiki locally