I’m concerned that very little news has been heard from the TokuDB development team. According to the tokudb-engine Github page, no commits have been made since the 1st of September 2015. Is it still being developed?
In MySQL 5.7, InnoDB has been enhanced to support very useful features including a JSON datatype, Spatial Indexing and Indexable Virtual Columns. However, InnoDB still does not support online addition/removal of columns - something that TokuDB handles brilliantly. This has greatly eased maintenance work in our production systems. InnoDB has also added support for page compression. Haven’t had a change to test it yet, but I doubt it would perform as well as TokuDB’s as InnoDB does not utilise TokuDB’s fractal tree indexes.
I am hoping to find out the TokuDB team’s plans for implementing the following features:
JSON Datatype
Indexable Virtual Columns
Spatial Indexing
Official Galera support
Fulltext Indexes
TokuDB and fractal tree indexes are such great technology and add so much value to MySQL. It would really suck if they were not allowed to reach their full potential.
I am disappointed that nobody from Percona has stepped in to answer these questions. Nonetheless, I have managed to find answers to some of them myself:
Firstly, the current Github locations for PerconaFT (formerly Tokutek ft-index) and TokuDB development are now:
Looks like it’s supported. I successfully created JSON columns in a TokuDB table in Percona Server 5.7.10-1 RC1.
2. Generated Columns (Virtual Columns)
Not supported. Got the following error when I tried to alter a table to create a generated column: “ERROR 3106 (HY000): ‘Specified storage engine’ is not supported for generated columns.”
3. Spatial Indexing,
4. Official Galera support,
5. Fulltext Indexes
Have not tested but these do not appear to be supported.
No, foreign key support will likely never be implemented in TokuDB. If at some point upstream MySQL fixed the foreign key implementation to properly exist above the storage engines rather than within them, we would reconsider.