MongoDB 3.0 supports the Wiredtiger storage engine, provides pluggable storage engine APIs, adds a scram-sha-1 authentication mechanism, and improves explain
functionality.
Pluggable Storage Engine API
Allow third parties to develop storage engines for MongoDB
Wiredtiger Storage Engine
The first introduction of the Wiredtiger storage engine, currently supports two storage engines:
- The storage engine before the mmapv1,3.0 version, and also the 3.0 default storage engine
- Wiredtiger, available for MongoDB 3.0 64-bit version only
Usage
Wiredtiger supports all features of the MONODB, replica sets and shard cluster members can use different storage engines, requiring the client to use the latest official drivers
Configuration
See strorage.wiredTiger
related configurations
Concurrency and compression
Provides document lock (Document-level) and data compression, by default compresses the collection data using the snappy library, compressing the index using prefix compression
MMAPV1 Storage Engine concurrency
Support for collection locks (collection-level), older versions are database locks (database-level), finer granularity, support for higher concurrency
Configuration
To support multiple storage engines, the MMAPV1 partial configuration option was changed:
Document Assignment Policy
Dynamic calibration is no longer supported for document assignment and is not recommended paddingFactor
.
MMAPV1 the default document assignment policy is 2 N-party , ignoring the usePowerOf2Sizes
collection configuration, so the set that is not configured noPadding
uses a 2 N-party allocation policy. If you have only insert and In-place update, you can set nopadding.
When disk space is low, the write operation is performed only when a disk space allocation failure is required, the delete operation that does not involve disk allocation, or the in-place update operation is normal.
Number of replica set nodes
Support for up to 50 nodes, of which no more than 7 polling nodes are available, this feature requires attention to whether the driver used is supported.
V3.0 supports up to 12 nodes, of which no more than 7 polling nodes.
Stepdown process
The replication set primary node performs the following changes to the Stepdown process:
- Before Stepdown, try to terminate long-running user actions, such as indexing, writing, map-reduce tasks, and so on, as these actions may block the Stepdown process
- In order to avoid the occurrence of the Rollback,primary node will wait for the candidate secondary node to catch up with the state of the primary node to ensure that the two states are exactly the same. v3.0 secondary node synchronization lags within 10 seconds of the primary node to perform stepdown.
- Allows the user to set
secondaryCatchUpPeriodSecs
parameters, if the secondary node does not catch the state of the primary node within a specified time, then Stepdown execution fails, and the replica set does not elect a new primary
Other
- Initial synchronization builds indexes more efficiently, using threads (multithreading?). Pending confirmation!) Batch Application Oplog
- Writeconcern W:majority represents the majority of voting nodes , with a replication set of up to 7 polling nodes
- More restrictive conditions, see official documentation
- Missing _id indexes are no longer automatically established for pre-existing collections on secondary nodes
Shard Cluster
The following improvements were made:
- Added commands to
sh.removeTagRange()
make tagged shard clusters easier to manage, with a role relative tosh.addTagRange()
- Provides more controllable read option behavior. MONGOs will analyze the read options for each operation and then execute as needed, and the client changing the read option will take effect immediately.
- Provides a new
writeConcern
, configured chunk migration operation for Balancer, moveChunk
commands, cleanupOrplaned
commands
- Improve visibility of balancer operations.
sh.status()
The output contains the status of the balancer, as described in the official documentation
Safety
The following improvements were made:
- New Scram-sha-1 user authentication mechanism
- More restrictive permissions from native access, see official documentation
Other improvements to the new query self-test (introspection system)
Provides granular self-test for query plan and query execution, improving output format of query results
Log
Improved log availability, classification based on component, type of operation, etc. to make analysis and diagnosis more convenient, see official documentation
Tools
All tools (such as Mongodump, Mongorestore, etc.) are rewritten with go and are maintained with a single project
mongodump
and mongorestore
Add new command-line arguments --numParallelCollections
to support multiple collections concurrent export/import
mongodump
Added command-line options -excludeCollection
and --excludeCollectionsWithPrefix
, for excluding target collections
mongorestore
Support for Bson data from standard input, previously input only supports data from Bson files
mongostat
and mongotop
you can use --json
command-line options to generate output in JSON format
mongoimport
mongorestore
mongofiles
use --writeConcern
command line options to configure write options
mongofiles
You can use --prefix
command-line options to configure the GRIDFS prefix to customize the namespace so that multiple Gridfs namespaces can be hosted under a single database
Index
- Background indexing is no longer automatically interrupted by the execution of the target database or collection
dropDatabase
drop
dropIndexes
, and execution of the above command during the indexing process will result in an error background operation is Currentlxiay running
- If
createIndexes
multiple indexes are specified with a command
- This command only scans the collection once
- If an index is established by the foreground, then all indexes are set up in the foreground
- For a Shard collection, if an index covers the slice key, then the index can cover queries executed through MONGOs, refer to the official documentation for covering a query
Inquire
- Geo-spatial query, increase query scope
- Aggregate query, new operator
$dateToString
for converting dates to strings
- New operators
$eq
represent equality conditions
Resources
Release Notes for MongoDB 3.0
MongoDB 3.0 Release Notes