(Update 2012-07-19: Experimental plans upgraded to 2.2.0 RC1) (also posted to the 10gen blog here.)
MongoLab is excited to offer free hosted databases running on MongoDB 2.1! We have been testing this new version internally and are loving the new features it offers, especially the aggregation framework and time-to-live (TTL) collections. We think you'll love it too. So pull up a chair, fire up a 2.1 database with MongoLab, and experiment a little! It's a great opportunity to learn about the new features and help solidify what will become the stable 2.2 release.
I'm sold! How do I get started?
MongoLab's automated provisioning tools make it easy to get going, but first a brief, but important disclosure:
Remember that these experimental databases are not supported for production use. The 2.1 code line is for development and testing purposes only, and as such MongoLab's support team may not be able to resolve every issue. For production use, you will have to wait for 2.2 to become available and pass the MongoLab certification process before you can run your production apps against our production database plans. No official date for 2.2 exists, but historically, a production release would follow this development release within a few months.
To provision a 2.1 database for your development and testing needs:
- If you don't already have one, create a MongoLab account at https://mongolab.com/signup. They're free!
- On your account home page click either "Create new" or "Clone existing" depending on whether your want to seed data from an existing MongoDB database or not.
- Be sure to choose the free plan and Amazon's US East region and you will be offered a checkbox just below the list of plans allowing you to choose the experimental 2.1/2.2 option.
- Tick the experimental checkbox, read and accept the disclosure that pops up, and the database you create will be running on MongoDB 2.1!
Pro tip: You can clone a 2.0 database into a 2.1 mongod process, so if you already have some data in 2.0 that you'd like to play with in 2.1 try the cloning feature!
I'd like to know more. What's new in 2.1?
2.1 is the development branch of MongoDB that will eventually be released as 2.2 when stable enough. (A word on MongoDB versions.) You can review the 2.2 release notes for a thorough list of features and fixes, but we're particularly excited about the aggregation framework, TTL collections, and database-level locking.
The aggregation framework is a powerful new tool for MongoDB that allows you to transform the shape of your query results by specifying of pipeline of operations to be performed on them. Many folks are excited about the ability to group results to perform simple analytics. Also exciting is the advanced operator unwind that allows you to cross a nested array with its enclosing document.
MongoDB can be very useful as a persistent cache. Many folks are using it in a role that otherwise might have been filled by memcache, but data expiry has been challenging. With 2.1.2's new TTL collections, you can now have MongoDB enforce a time-based expiration policy by creating an index on a date field and configure it with a time to live (TTL) value. Once the date in that field gets older than the TTL, it will be deleted.
Prior to 2.1 the reader-writer lock was global to the entire mongod process. So if any database in the process was being written to no other read or write operations could be performed.
With 2.1, the scope of locking has (essentially) been brought down to the database level. It will be made even finer-grained in future releases, which will be even more exciting, but this first step is a big one, especially for our Shared customers and Dedicated customers who want to separate multiple "hot" collections from each other into separate databases.
Great! How do I provide feedback?
As always, we want to hear about any issues you might be having or feedback you might want to provide on how we could do things better. This is particularly true as both MongoDB 2.1 and MongoLab's support for it stabilize.
So test away and let us know what you think! Here are a few ways you can get in touch with us:
- Email MongoLab at firstname.lastname@example.org
- Create a ticket in MongoLab's support system
- Create a ticket in 10gen's MongoDB Jira
Got anything else I can read?
While 2.1 is still new, there are already several great presentations and blog posts out there covering some of the version's interesting features.
- Presentation, MongoSF 2012: MongoDB's New Aggregation Framework
- Presentation, MongoSF 2012: Concurrency Internals in MongoDB v2.2
- MongoDB blog post: Operations in the New Aggregation Framework
- Blog post: Time-to-Live Collections with MongoDB
(updated 2012-06-25: included 10gen blog post link. Updated 2012-06-26: updated relevant details for 2.1.2 release. Update 2012-07-19 to mention experimental plan upgraded to 2.2.0 RC1)