OPTIONS
  • Release Notes >
  • Development Release Notes for MongoDB 2.8.0 Release Candidates

Development Release Notes for MongoDB 2.8.0 Release Candidates

MongoDB 2.8 is currently in development. While 2.8 release candidates are currently available, these versions of MongoDB are for testing only and not for production use.

Major Changes

Storage Engines: Improved Concurrency, Document-Level Locking with Compression

MongoDB 2.8 includes support for two storage engines: MMAPv1, the storage engine available in previous versions of MongoDB, and WiredTiger. By default, in 2.8 MongoDB uses the MMAPv1 engine.

In 2.8 MMAPv1 adds support for collection-level locking by default. With the WiredTiger storage engine, MongoDB now provides document-level locking and compression. WiredTiger supports all MongoDB features and can interoperate with MMAPv1 in the same replica set or sharded cluster, but requires a change to the on-disk storage format. To convert an existing data set to WiredTiger, you can either:

To enable WiredTiger, start MongoDB with the following option:

mongod --storageEngine wiredTiger

If you attempt to start a mongod with a storage.dbPath that contains data files produced by a storage engine other than the one specified by --storageEngine, mongod will refuse to start.

Start mongod with the --wiredTigerDirectoryForIndexes option to store indexes and collections in separate directories. Use this capability to store indexes and data on separate storage devices. For example:

mongod --storageEngine wiredTiger --wiredTigerDirectoryForIndexes

WiredTiger has additional options that you can configure at start up time. To configure the storage engine for a mongod instance, use the following option:

--wiredTigerEngineConfig "<option>=<setting>,<option>=<setting>"

Specify a comma-separated list of options in quotes on the command line. See the WiredTiger storage engine options.

You can modify the WiredTiger storage engine configuration options of a running mongod instance with the wiredTigerEngineRuntimeConfigSetting parameter, as in the following:

db.adminCommand( { "setParameter": 1,
                   "wiredTigerEngineRuntimeConfigSetting": "<option>=<setting>,<option>=<setting>" })

To change WiredTiger settings for all new collections, use the following option:

--wiredTigerCollectionConfig "<option>=<setting>,<option>=<setting>"

To change WiredTiger settings for all new indexes:

--wiredTigerIndexConfig "<option>=<setting>,<option>=<setting>"

Specify a comma-separated list of options in quotes on the command line. See the wired tiger index and collection-level options.

You can also configure WiredTiger on a per-collection basis using db.createCollection():

db.createCollection("<collectionName>", {storageEngine: {
                                            wiredTiger: {configString: "<option>=<setting>,<option>=<setting>"}}});

All existing server, database, and collection reporting exposes statistics from WiredTiger, including: db.serverStatus(), db.stats(), db.collection.stats(), and db.collection.validate().

WiredTiger supports compression by default on all collections using the Snappy library.

Increased Number of Replica Set Members

MongoDB replica sets now support larger maximum replica set sizes up to 50 members. As in earlier releases, replica sets may only have a maximum of 7 voting members.

Use the following drivers with larger replica sets:

  • C# (.NET) Driver 1.10
  • Java Driver 2.13
  • Python Driver (PyMongo) 3.0+
  • Ruby Driver 2.0+
  • Node.JS Driver 2.0+

Because the C, C++, Perl, PHP, and earlier versions of the Ruby, Python, and Node.JS drivers discover and monitor replica set members serially, these drivers are not suitable for use with large replica sets.

Pymongo 3.0, the Ruby Driver 2.0, and the Node.JS Driver 2.0 are currently in development.

Security Improvements

Adds SCRAM-SHA-1 Authentication Mechanism

MongoDB 2.8 adds a new SCRAM-SHA-1 authentication mechanism.

Changes to the Localhost Exception

When using Localhost Exception to access MongoDB, you have limited access and can only create a user in the admin database.

Query Engine Improvements

Query Introspection Improvements

MongoDB 2.8 includes a new query introspection system exposed in the explain() method which is available on all MongoDB query operations. (e.g. db.collection.find(), db.collection.remove(), db.collection.update()) operations.

See the queryPlanner, executionStats, and serverInfo fields in the output of explain() for new information on query execution and workload.

Covered Queries

For sharded collections, indexes can now cover queries that execute against the primary.

Download

To download MongoDB 2.8 release candidates, go to the downloads page.

Additional Resources