Why We’ve Deprecated MongoRocks in Percona Server for MongoDB 3.6

MongoRocksIn this blog post, we’ll look at why we deprecated MongoRocks in Percona Server for MongoDB 3.6, and provide some guidance on switching from MongoRocks to WiredTiger.

On April 24, 2018, Percona announced the availability of Percona Server for MongoDB 3.6. If you read the blog post announcing the release, you probably saw the following note:

“MongoRocks is deprecated in Percona Server for MongoDB 3.6 and it will be fully removed in the next major version of Percona Server for MongoDB.”

Why did we make this decision, and what should you do if you’re using MongoRocks?

There are two significant factors that contributed to our decision to deprecate MongoRocks in Percona Server for MongoDB 3.6:

  1. We’ve seen little commercial interest in MongoRocks over the past two years, and
  2. MongoDB’s deep integration with WiredTiger makes supporting alternative storage engines increasingly difficult.

Little Commercial Interest

We haven’t seen strong demand for MongoRocks from our customers. Whenever we talk to Percona customers and Percona Server for MongoDB users, we receive pretty consistent feedback about some new features they would like to see, but nobody ever mentions storage engines. When we ask specifically which storage engine they use, it’s almost always WiredTiger. MongoRocks rarely comes up.

Deep WiredTiger Integration Makes Alternative Storage Engine Support Increasingly Difficult

MongoDB 3.6 introduced a number of exciting new features, including sessions, retryable writes and causal consistency (both of which are based on the sessions work). And, as was formally announced in February, MongoDB 4.0 will bring multi-document transactions for replica sets. All of these important new features work properly in large part because of significant changes MongoDB, Inc. made to the storage layer of WiredTiger. Additionally, given that the MongoDB server team is planning on deprecating MMAPv1 in MongoDB 4.0, we expect MongoDB, Inc. will continue making fundamental changes to WiredTiger to create new features in MongoDB.

Rearchitecting RocksDB (the storage layer of MongoRocks) to allow it to work properly with the new features in MongoDB 3.6 and with multi-document transactions in MongoDB 4.0 would be a massive undertaking, and we believe more users will be more positively affected if our engineering resources instead work on frequently-requested features for Percona Server for MongoDB.

For those of you who are using MongoRocks with Percona Server for MongoDB, we know this situation isn’t ideal; but we want to make sure you have a database that’s highly performant and reliable and using all of the latest and greatest features, including sessions (and soon, transactions). The best way to achieve that is to migrate from MongoRocks to WiredTiger and upgrade to Percona Server for MongoDB 3.6.

How to Switch to WiredTiger and then Upgrade

If you are using MongoRocks with an earlier version of Percona Server for MongoDB, and you wish to upgrade to Percona Server for MongoDB 3.6, we strongly encourage you to first switch to WiredTiger, then upgrade. For detailed instructions on how to change MongoDB storage engines without downtime, please see this blog post, appropriately titled, “How to Change MongoDB Storage Engines Without Downtime.” You can then follow the steps from the Upgrading to 3.6 section of the Percona Server for MongoDB 3.6 documentation.

We suspect sessions and transactions are just the tip of the iceberg of great new functionality that MongoDB will be able to implement by building deep integrations between the database and WiredTiger. We look forward to seeing what comes next!

Share this post

Comments (5)

  • Renaud K.

    For us, the most important features in RocksDB are incremental backups and write performances. Currently we cannot switch to WT because of incremental backups lack.

    May 11, 2018 at 3:09 am
  • flozano

    For us, having the ability to handle huge number of collections was great. WT cannot handle this at all.

    May 11, 2018 at 3:43 am
  • Oded Fossfeld

    WiredTiger was not able to handle the constant write load we have in our app which is easily handled by MongoRocks (and previously by Tokumx, sadly discontinued by Percona as well).
    With WiredTiger the DB would often hang for any amount of time.

    May 13, 2018 at 10:31 am
  • Mark Garrett

    Frustrating that MongoDB makes a big deal of supporting different storage engines, then effectively walking back on that by tying major changes to specific storage engine architectures. This also makes fewer and fewer reasons to use Percona over the vanilla implementation.

    May 14, 2018 at 11:55 am
  • Cameron Guill

    Tried using WT before and it lost huge amounts of data. Same numbers of records, just data missing from a significant portion of the data. Found that when attempting to restore a backup for verification. We got lucky that unique constraints caught it on restore (but not or fresh sync). I was hoping for something a little more trustworthy and less buggy.

    July 20, 2018 at 9:29 pm

Comments are closed.

Use Percona's Technical Forum to ask any follow-up questions on this blog topic.