TokuDB Differences

TokuDB has been deprecated by its upstream maintainer. It is disabled from MariaDB 10.5 and has been been removed in MariaDB 10.6 - MDEV-19780. We recommend MyRocks as a long-term migration path.

Because we, the MariaDB developers, don't want to add a lot of new features or big code changes to a stable release, not all TokuDB features will be merged at once into MariaDB. Instead they will be added in stages.

On this page we list all the known differences between the TokuDB from Tokutek and the default MariaDB version from MariaDB.org:

All MariaDB versions

  • TokuDB is not the default storage engine.
    • If you want to enable this, you have to start mysqld with: --default-storage-engine=tokudb.
  • Auto increment for second part of a key behaves as documented (and as it does in MyISAM and other storage engines).
  • The DDL syntax is different. While binaries from Tokutek have the patched SQL parser, TokuDB in MariaDB uses the special Storage Engine API extension. Thus in Tokutek binaries you write CLUSTERED KEY (columns) and, for example, ROW_FORMAT=TOKUDB_LZMA. And in MariaDB you write KEY (columns) CLUSTERING=YES and COMPRESSION=TOKUDB_LZMA.

Features missing in MariaDB 5.5

  • No online ALTER TABLE.
    • All alter table that changes data or indexes requires a table copy.
  • No online OPTIMIZE TABLE.
  • No INSERT NOAR or UPDATE NOAR commands.
  • No gdb stack trace on sigsegv
  • IMPORTANT: the compression type does not default to the tokudb_row_format session variable as it does with Tokutek's builds. If COMPRESSION= is not included in CREATE TABLE or ALTER TABLE ENGINE=TokuDB then the TokuDB table will be uncompressed (before 5.5.37) or zlib-compressed (5.5.37 and later).

Features missing in MariaDB 10.0

MariaDB 10.0 (starting from 10.0.5) has online ALTER TABLE. So the features missing will be:

  • No INSERT NOAR or UPDATE NOAR commands.
    • We are working with Tokutek to improve this feature before adding it to MariaDB.
  • No online OPTIMIZE TABLE before 10.0.11 (r4199)
  • No gdb stack trace on sigsegv
  • Before 10.0.10 the compression type did not default to the tokudb_row_format session variable. If COMPRESSION= was not included in CREATE TABLE or ALTER TABLE ENGINE=TokuDB then the TokuDB table was created uncompressed.

Version of the TokuDB plugin included on MariaDB

This is found on the TokuDB page.

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.