Announcing TokuDB v6.6: Performance Improvements

Posted On January 8, 2013 | By Martin Farach-Colton | 1 comments

We are excited to announce TokuDB® v6.6, the latest version of Tokutek’s flagship storage engine for MySQL and MariaDB.

This version offers three types of performance improvements: in-memory, multi-client and fast updates.

Although TokuDB is optimized for large tables, which are larger than memory, many workloads consist of a mix of large and small tables. TokuDB v6.6 offers improvements on in-memory performance, with a more than 100% improvement on Sysbench at many concurrency levels and more than 200% improvement on TPC-C at many concurrency levels. Details to follow.

We have also made improvements in multi-threaded performance. For example, single threaded trickle loads have always been fast in TokuDB. But now multi-threaded trickle loads are even faster. An iibench run with four writers shows an increase from ~18K insertions/sec to ~28K insertions/sec. With a writer and reader running concurrently, we achieve ~13K insertions/sec.

Leif Walsh, one of our engineers, will be posting some details of how this particular improvement was achieved. So stay tuned for this and posts comparing our concurrent iibench performance with InnoDB’s.

Finally, we’re very excited to offer improved update speeds in TokuDB v6.6. For certain kinds of update operations (including, for example, insert on duplicate key update), we are able to achieve iibench-like rates, so updates at rates of >20K/second! This optimization exploits an important aspect of Fractal Tree® indexes, which are the indexes used in TokuDB. In a Fractal Tree index, all changes — insertions, deletions, updates, schema changes — are messages that get bundled so as to optimize disk I/Os. Queries, however, can force an I/O if the data is not cached. Updates, such as incrementing a counter in a field, are typically implemented as a search to find the current value followed by an update, to write the new value. In TokuDB v6.6, many updates are implemented as messages that carry enough logic to update the old value, with no need for the initial query. This eliminates the immediate disk I/O and gives us our speedup.

We’ll be blogging on use cases where this optimization can have a huge impact.

For additional details on updates to pricing and supported MySQL and MariaDB versions for this launch, please see our FAQ.

TokuDB v6.6 maintains all our established advantages: fast trickle load, fast bulk load, fast range queries through clustering indexes, no fragmentation, and full MySQL/MariaDB compatibility for ease of installation.

To learn more about TokuDB:

One Comment

  1. […] Announcing TokuDB v6.6: Performance Improvements […]

Leave a Reply

Your email address will not be published. Required fields are marked *