Upcoming Database Upgrade: What You Need to Know

We will be upgrading the database engine behind our cloud database to a new version. Our database is MongoDB with MMAPv1 storage engine and we will be upgrading it to WiredTiger storage engine. The update will happen on February 27, 2017.

New Data Compression

The new database storage engine uses data compression. This means that after the upgrade, you will see a decreased total size for your databases. All your data is still there, and there is absolutely no impact on data integrity.

The new version of MongoDB will allow us to add new features and benefits in the future.

Default Data Order

For some users, when you open a database collection, the rows might be reordered. All your data is still there, and there is absolutely no impact on data integrity. This might happen because how the new database engine stores data.

Here is an example.

Let’s say you have the following collection:

_idname
12345linda
54852nick

When you do a GET request on this data, you will get the following response:

[
     {"_id" : "12345", "name" : "linda"},
     {"_id" : "54852", "name" : "nick"}
]

After the database update, some users might see the data reordered:

_idname
54852nick
12345linda

The same GET request will return the same data but with objects reordered:

[
     {"_id" : "54852", "name" : "nick"},
     {"_id" : "12345", "name" : "linda"}
]

Your app might be impacted if it relies on default database order. A recommended practice from many database vendors is to implement ordering in your app, and not to rely on default database order which might change.

More Information

If you want to learn more about MongoDB 3.2 and its new compression storage engine, read here, here and here.

The upgrade will be done without any downtime. This means your apps that use the database will continue to work. The upgrade will take 8-10 hours.