TL;DR RocksDB will probably supplant TokuDB as my go-to backend for bigger-than-RAM datasets
A long time ago something amazing happened in database storage engines. Fractal Trees inventors spun off a company called Tokutek to productify them.
The resulting TokuDB storage engine ran rings around all other engines. Now it did this in part because they smudged the integration a bit; running the Tokutek-packaged TokuDB always massively outperformed a generic TokuDB packaged by Percona or MariaDB because the tweak wasn’t just to the storage layer but also, I believe, to the way MySQL integrated with storage engines?
And, roughly at the same time, deep inside Google they combined Log Structured Merge (LSM) Trees with Sorted String Tables (SSTables).
Now if you draw FT and LSM on a white-board side-by side and step back and squint they are actually fairly similar. The dominating thing is that layers are hierarchical - the storage has the same shape and the IO is fairly equivalent.
There’s this pattern emerging where Google publish some ground-breaking utility code (often after they’ve already started on its replacement internally, it seems) and Facebook iterate and maintain it. LevelDB became RocksDB. Snappy got FB sponsoring LZ4 ZStd etc perhaps? And so on.
And so RocksDB emerges as a well-supported, stable but also constantly improving LSM+SSTable that has excellent compression too. The thing to underline here is that RocksDB is not about to be abandoned and bitrot; instead, its only going to get better!
Tokutek did not get the big success it deserved in the DB world, and eventually got brought by Percona. And the TokuDB packaged by Percona or MariaDB using the constraining MySQL storage engine interface was not as world-beating as that originally integrated by Tokutek. TokuDB was still my preferred storage engine though. (previously: Compressing MySQL stats). One thing that is exciting though is that Percona may finally integrate faster UPSERT hints - about time!!
Facebook have already integrated RocksDB into MySQL as myrocks.io. I haven’t used it. What has got me excited though is that Percona seem to be packaging it up in Percona-Server too! Here’s a nice set of slides from a talk I wished I could have watched: TokuDB vs MyRocks
There is another general pattern in the DB world today: swap out your storage engine for RocksDB! Just yesterday we saw the stunning results Instagram got with Cassandra doing it. Even MongoDB went that way, and once upon a time TokuMX was vying for that pie.
So TokuDB may still be better than RocksDB for all kinds of technical reasons, but in the end, backing RocksDB is going to be less pain and technical debt longer-term. It might even support foreign keys and other stuff that TokuDB never got around to.
I am quite sad for Tokutek’s plight and legacy though.
Oh, and I wish someone would bite the bullet and overhaul the MySQL storage engine layer and add NOAR support everywhere and make it so that everyone can have faster MySQL. Tokutek showed there’s still so much room for improvement.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
If you've been paying attention to the MongoDB world lately, then you know that exciting things are afoot. The 3.0 release introduces a modular storage engine API, allowing third party engines like RocksDB, TokuDB and WiredTiger to integrate seamlessly with the MongoDB data interface. The RocksDB engine developed by Facebook engineers is one of the fastest, most compact and write-optimized storage engines available. RocksDB has been running for years as a storage layer for various services here at Facebook, so we have a lot of confidence in its maturity. It is also currently the only LSM engine available for use with MongoDB (WiredTiger also supports LSM natively, but only the B-tree implementation will be available for MongoDB until later releases). At Parse we have been working closely with other Facebook engineers to integrate and optimize RocksDB + MongoDB, by replaying a wide range of production workloads offline and comparing results between mmapv1, RocksDB, and WT. And we now
RocksDB is an embeddable persistent key-value store for fast storage. RocksDB can also be the foundation for a client-server database but our current focus is on embedded workloads.
RocksDB builds on LevelDB to be scalable to run on servers with many CPU cores, to efficiently use fast storage, to support IO-bound, in-memory and write-once workloads, and to be flexible to allow for innovation
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming