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:
_id | name |
---|---|
12345 | linda |
54852 | nick |
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:
_id | name |
---|---|
54852 | nick |
12345 | linda |
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.