Review: MongoDB 3.0 reaches for the enterprise

MongoDB zeroes in on operations with pluggable storage engines and revamped management tools

At a Glance
  • MongoDB 3.0

Already one of the finest JSON-document databases out there, MongoDB has unleashed an impressive set of improvements with its 3.0 release. Originally, the release was given the numeric designation of 2.8, but after significant feedback from the user base -- whose members claimed that the extent of the new features warranted an integer-level version number change -- the MongoDB engineers rechristened the release MongoDB 3.0.

Though the new features are numerous, perhaps the most significant is the new pluggable storage engine API. Not only does this interface permit third parties to create new storage engines, tuned to specific applications, it allows MongoDB to provide its own storage engines, which are available as part of the release. Both MongoDB engines bring more granular locking and greater concurrency to the database -- in a nutshell, more speed. 

Other improvements, ranging from easier query optimization to richer logging, will warm the hearts of DBAs and operators. At the highest level, the MongoDB Management Service, now dubbed MongoDB Cloud Manager, has been enhanced to serve as a complete management system, capable of controlling arbitrarily large MongoDB clusters from a single console.

Revving the engines

Prior versions of MongoDB offered a single storage engine, MMAP, so named because it employed memory-mapped files. That is, MMAP left all the work of disk I/O, seeks, block caching, and so on to the operating system. MongoDB 3.0 offers both an improved version of MMAP (MMAPv1) and the WiredTiger storage engine. 

MMAPv1, a drop-in replacement for MMAP, is backward compatible with MMAP, so existing MongoDB deployments can upgrade to MMAPv1 with no data conversions required. MMAPv1’s biggest improvement over its ancestor is finer locking granularity. MMAP locked at the database level; within a given MongoDB database, clients could write to only one collection at a time. MMAPv1 locks at the collection level, so clients can perform writes on multiple collections within a database simultaneously. The improved concurrency is primarily evident in speedier write operations, as writes are the main requestors of locks. But reads are quicker, as they can be blocked by writes. 

To continue reading this article register now