On February 3rd MongoDB, Inc. formally announced MongoDB v3.0 (the product release formerly known as v2.8).  It includes a number of important enhancements, some of them of particular interest to users of the Tokutek distribution of MongoDB, TokuMX, or anyone thinking about using TokuMX.

Most notably, MongoDB v3 includes a storage engine API that can be used to create new, “pluggable” storage engine options for MongoDB; and that MongoDB itself is using it to integrate the WiredTiger storage engine technology they recently acquired when they acquired the company that developed it (also called WiredTiger).

Here’s some food for thought, with links to additional reading on each point.

  • As previously discussed in a previous blog post, Tokutek will offer a “pluggable storage engine” that is compatible with the new MongoDB APIs. It will be built with the very same Fractal Tree indexing libraries that underpin TokuMX and TokuDB (i.e., new product, but proven technology). It will be called TokuMXse 

    See: YES, VIRGINIA, THERE IS GOING TO BE A TOKUMX STORAGE ENGINE FOR MONGODB 2.8

  • Tokutek will continue to offer TokuMX (think of it as the bigger & broader sibling to TokuMXse) as this fork of MongoDB includes much more than Fractal Tree indexing. In other words, The MongoDB storage engine API takes us (and everyone else) only so far.

    See: ANNOUNCING TOKUMXSE V1.0.0-RC.0

  • It’s important to understand the WiredTiger storage engine supports two indexing models: 40-year-old B-tree and the more modern Log-Structure Merge Trees (LSM). However, in the 3.0 release MongoDB will support only B-tree indexing. Therefore, TokuMX (and/or TokuMXse) will continue to outperform basic MongoDB.

    See: MongoDB Storage Engine Shootout : Round 1 : Indexed Insertion

 

 

The NoSQL marketplace is growing like crazy, and like MongoDB, Inc., Tokutek continues to enjoy success riding the same rising tide (albeit at the smaller / high-end of that market, where Big Data and IoT workloads come into play).

And, as MongoDB evolves, so will TokuMX (& TokuMXse).

Exciting times ahead.

Remember, MongoDB v3.0 is the release formerly known as MongoDB v2.8. Wherever you see “MongoDB 2.8” read it as “MongoDB 3.0.”

Feel free to comment or ask questions here on TokuView, and/or share your thoughts with me on Twitter via @dcrosenlund

6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
ddorian43

The reasons people choose mongodb is: hype, easy to use/start, webscale.
While mongodb ~failed on webscale, they are beginning to fix it.

The good of tokumx is: better performance, some different features(more like performance-features like fast updates).

The bad of tokumx: less features than mongodb, less hype(they don’t even mention you exist, although many customers do).

The bad of both mongodb/tokumx:

1. The sharding thing (~all of it), compared to couchbase,riak,cassandra,aerospike,rethinkdb) etc.
While none of those support range-sharding, it gives you many features (see bigtable,hbase (global indexes etc))
This can be semi-done by doing a regex-sharding (see redislabs). Thus keeping every node the same and having ~range-based sharding.

2. More features: This is a little hard, since you don’t control the client-layer (you’d have to fork everyone of them) in some features, which isn’t preferable.
Probably just looking at the mongodb-top-feature-requests. Or a sane query-language. Not sure.

Meaning it will be hard to offer a better mongodb when you have to always keep compatibility. Probably build your own db and keep a mongodb-compatibility-layer. This way everyone wins (except mongodb).

Saurabh

AFAIK, collection-level locks were introduced in MongoDB 2.6. This release introduces document level locks, according to the official MongoDB blog https://www.mongodb.com/blog/post/announcing-mongodb-30

Leon Wrinkles

> 40-year-old B-tree

That’s kind of a cheapshot. Microsoft’s BW-Tree is a B-Tree and it’s probably the fastest one out there now.

Mike De Haan

Has there been any discussion on forking the drivers from mongo as well? We’re currently running in production using the MongoDB deprecated requestStart() method (mongo driver version 2.x) and the next version (3.x) removes it completely. Are there modern alternatives to support transactions using TokuMX in a Java environment?