First up, congratulations to MongoDB, Inc for releasing MongoDB 3.0. We know a lot of you are already waiting to try out the recently released MongoDB 3.0 on Compose, if our support mailbag is anything to go by. That's why we're happy to announce that you can now upgrade your Compose deployments to MongoDB 3.0.
As a major new version, with new features like a pluggable storage engine and enhanced locking, we don't suggest you go straight into production with it. What we do recommend at this point that you begin testing with a new MongoDB 3.0 deployment to ensure that you don't run into any unexpected issues. We will be tracking and iterating to the updates to MongoDB 3.0.x as they are released.
MongoDB 3.0 brings an improved MMAPv1 storage engine with collection-level locking and new space padding options. The collection-level locking will improve the performance of some use cases, where there are multiple collections currently contending for the MongoDB 2.x database lock. If you do want to upgrade in place, you'll need to have upgraded to MongoDB 2.6 before embarking on the 3.0 update.
The Why of No Tiger
There is one feature of MongoDB 3.0 that we aren't making available at this point in time – the non-default WiredTiger storage engine. WiredTiger is an exciting update to MongoDB's storage capabilities bringing document-level locking and data compression. This is going to be the default storage engine in a future release of MongoDB. We've chosen not to enable it at this point though.
We're being cautious because we want to ensure that we have a deep understanding of how WiredTiger performs with real use cases. To do that we also have to be able to move databases easily between the storage engines. Moving to WiredTiger means converting the data to a new on-disk format. It also requires that all clients and applications are using the latest drivers, because of driver level changes.
It's possible to do the disk format change without stopping a replica set and with some stepping down of primaries, according to the release notes, but choreographing that so it can be done automatically by Compose and work reliably has to be done with care.
WiredTiger is also just one of a number of storage engine options which are appearing for MongoDB 3.0 and we also want to be able to offer our customers the future ability to easily select storage engines for their deployments. That is work that is ongoing and we'll be keeping our MongoDB users informed of progress, but we also wanted to make the rest of MongoDB 3.0's enhancements available as soon as possible.
If you want the full list, you'll need to look at the release notes for MongoDB 3.0. But here's some of the compatibility issues you'll need to take into account if you are thinking of upgrading.
newCollectionsUsePowerOf2Sizesparameter is now ignored with power of 2 sizing being default and a new per collection
noPaddingoption added for collections which expect many non-document expanding updates. Power of 2 sizing has also been changed with large document padding being capped to 2Mb and going no higher.
dropDupsoption, which has been deprecated for some time, has now gone so you can't drop duplicated keys when doing
- If you use the Geospatial
$nearquery, be aware that the old 100 document result limit is no longer there; you reduce results by setting
- If you compare or sort a mixture of dates and timestamps, watch out because now Timestamps are now automatically greater than Date types.