MongoDB 2.4 Released



The MongoDB Engineering Team is pleased to announce the release of MongoDB 2.4. This is the latest stable release, following the September 2012 release of MongoDB 2.2. This release contains key new features along with performance improvements and bug fixes. We have outlined some of the key features below. For additional details about the release:

Highlights of MongoDB 2.4 include:

  • Hash-based Sharding
  • Capped Arrays
  • Text Search (Beta)
  • Geospatial Enhancements
  • Faster Counts
  • Working Set Analyzer
  • V8 JavaScript engine
  • Security

Hash-based Sharding: MongoDB 2.4 adds Hash-based Sharding, built on top of our range based sharding. Using a hashed shard key allows users to get a good distribution of load and data in a simple manner, in cases where documents are accessed randomly through the key space, or if the access patterns may not be totally predictable.

Capped Arrays: Capped arrays declare a fixed size array inside of a document. On a $push operation, users can now specify a $slice modifier, which trims the array to the last N items. You can also specify a sort, which will first sort the array, and then apply the trim.

Text Search: Text Search has been one of the all time most requested features in MongoDB. Text indexing will offer native, real-time text search with stemming and tokenization in 15 languages. For more details on Text Search and its implementation see the docs and blog post.

Geo Capabilities: MongoDB 2.4 introduces GeoJSON support, a more accurate spherical model and enhanced search including polygon intersection.  Currently 2dsphere supports the Point, LineString and Polygon GeoJSON shapes.  

Faster Counts: In many cases, counts in MongoDB 2.4 are an order of magnitude faster than previous versions. We made numerous optimizations to the query execution engine in order to improve common access patterns. One example is in a single b-tree bucket: if the first and last entry in the bucket match a count range, we know the middle keys do as well, thus we do not have to check them individually.

Working Set Analyzer: Capacity planning is critical to running a MongoDB cluster. In MongoDB 2.4 we added a working set size analyzer, making it easy to measure the percentage of resources used. It will tell you how many unique pages the server has needed in the last 15 minutes, so that you can track usage over time. When the amount of data needed in 15 minutes is approaching RAM, its probably time to add more capacity to your cluster.

New V8 Engine: MongoDB 2.4 changed the JavaScript engine used for MapReduce, $where and the shell. We have switched to V8, the JavaScript engine from Google Chrome, which improves concurrency.

Security: MongoDB 2.4 two major security enhancements: Kerberos Authentication and Role Based Access Control. Kerberos is part of MongoDB Enterprise and allows integration with enterprise level user management systems. Role Based Access Control allows more fine grained privilege management.  

There were hundreds (692) of improvements, so we encourage those interested to look at the changelog. A great deal of important work was done that cannot all be put into one post, so please ask questions about other tickets.  Even with everything in MongoDB 2.4, there is still a lot to do, and the 10gen engineering team is already hard at work on MongoDB 2.6.

We encourage you to provide feedback and testing. Thank you for your ongoing support of MongoDB.

-Eliot and the MongoDB Engineering Team