MongoDB 4.0.0-rc0, the first release candidate of MongoDB 4.0, is out and is ready for testing.
This is the culmination of the 3.7.x development series, and includes many exciting new features. Get up to speed on MongoDB 4.0 with the online course M040: New Features and Tools in MongoDB 4.0
Here are some of the highlights:
Multi-document ACID transactions
With snapshot isolation and all-or-nothing execution, transactions extend MongoDB ACID data integrity guarantees to multiple documents across one or many collections. These feel just like the transactions you are familiar with from relational databases, are easy to add to any application that needs them, and do not impact the performance of workloads that don’t require them. With multi-document transactions it’s easier than ever for all developers to address a complete range of use cases with MongoDB, while for many of them, simply knowing that they are available will provide critical peace of mind. In MongoDB 4.0 transactions work across replica sets, and MongoDB 4.2 will support transactions across sharded clusters.
Snapshot Read Concern
find, aggregate, count, distinct, and geoNear queries executed against a replica set within a read-only transaction will operate against a single, isolated snapshot, ensuring that a consistent view of the data is returned to the client, irrespective of whether that data is being simultaneously modified by concurrent operations.
Non-Blocking Secondary Reads
To ensure that reads could not return data that was not in the same causal order as the primary replica, MongoDB previously blocked secondary reads while oplog entries were applied. MongoDB 4.0 avoids blocking by reading from a snapshot on the secondary, improving read latencies and increasing throughput from the replica set, while maintaining a consistent ordering of data. For replica sets with a high write load, not having to wait for readers between applying oplog batches allows for reduced replication lag and faster confirmation of majority writes.
Extensions to Change Streams
Change Streams can now be configured track changes across an entire database or whole cluster. Additionally, change streams now will return a cluster time associated with an event, which can be used by the application to provide an associated wall clock time for the event.
Data Type Conversions
A $convert expression has been added to the aggregation framework. This will not only allow new ETL workloads and simplify app development, but also allow the MongoDB BI Connector to push down large amounts of work to MongoDB Server, unlocking significantly improved performance for users of that tool.
Improved Migrations Throughput
Sharded migrations are now up to 40% faster, so users can more easily and quickly scale capacity elastically in response to changing application demand as nodes are added and removed from sharded clusters.
We’ve added support for SCRAM-SHA-256, allowing individual users to store SHA-2 based credentials when security policies disallow the use of SHA-1.
On macOS and Windows, MongoDB now uses the platform's native cryptography and TLS support, and no longer uses OpenSSL. Additionally, the system certificate stores can be used to manage certificates.
Improved Sharded Operation Management
Operators can now list and kill queries running in a sharded cluster directly on a mongos node. When a sharded query either encounters an operation-fatal error, or is explicitly killed by an operator, on either mongos or any shard, the query will be promptly terminated on all other shards in the cluster. See SERVER-6496 for further details.
Slow Query Logging on mongos
Previously only available on mongod, we now log operations which exceed a particular latency threshold on mongos, enabling DBAs to more quickly identify problematic queries.
Hybrid Cursor Caching
Improvements in cursor caching unlock up to 2x performance gains on deployments running with a large number of collections, and enable operations like dropping a collection to execute without causing any performance degradation on other active collections.
As always, please engage with us:
Report any issues
Meet our engineering team and other MongoDB users at MongoDB World'18 (June 26-27)
-- The MongoDB Team