- 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:
- upgrade replica sets in a rolling manner. See Upgrade a Replica Set to 2.8 or Upgrade a Sharded Cluster to 2.8, or
- use mongodump and mongorestore to import data.
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.
Upgrade Process¶
See Upgrade MongoDB to 2.8 for full upgrade instructions.
Download¶
To download MongoDB 2.8 release candidates, go to the downloads page.