Tarantool 2.1.3 Stable Release

Nov. 12, 2019

We have released Tarantool 2.1.3, which is the last stable version of the 2.1 release series. The label 'stable' means we have all planned features implemented and we see no high-impact issues. This release resolves roughly 20 issues, the full list is here. The most interesting changes are:

  • From now on we use bundled libcurl rather than system-wide by default.

The implementation of the built-in HTTP client is based on this library. Many operating system builds contain an outdated version of libcurl. Delivering an up-to-date version of the library as part of Tarantool solves several known issues, including segfaults, hangs, memory leaks and performance problems. In addition, it allows you to use options that are not available when working with an older version of libcurl, such as fine-tuning the caching control on open connections.

  • Significantly increased the speed of initial inclusion of the node in the replica set.

In previous versions, the initial data that was transferred to the new replica was based on the last snapshot on disk (followed by transaction log processing). In the new version, the data is based on the current read view, which in many cases significantly reduces the time required for the replica to receive and process requests.

  • We no longer compress the top level of the LSM tree, which significantly increases the speed of query processing when working with disk engine.

Vinyl engine uses LSM trees. This builds hierarchies of data updates (levels). The size of the levels grows exponentially, so it is very important to compress them, especially at lower levels. At the same time, the size of the top level is relatively small, and the number of requests aimed there can be very large. Starting with the new version, we no longer compress the top level, which in many cases significantly increases the speed of query processing.