Jepsen Evaluation Demonstrates MongoDB Data Safety, Correctness & Consistency
On February 7th 2017, Kyle Kingsbury, creator of Jepsen, published the results of his tests against MongoDB 3.41. His conclusions:
MongoDB has devoted significant resources to improved safety in the past two years, and much of that ground-work is paying off in 3.2 and 3.4.
MongoDB 3.4.1 (and the current development release, 3.5.1) currently pass all MongoDB Jepsen tests….These results hold during general network partitions, and the isolated & clock-skewed primary scenario.
What is Jepsen?
Since debuting in 2013, Jepsen has established itself as one of the most demanding distributed system tests available in the industry today. By inducing extreme failure and random race conditions – including simultaneous network partitions, unsynchronized systems clocks, and repeated failures – it is regarded by many as the gold standard in evaluating correctness of data consistency and safety in distributed systems.
MongoDB 3.4 offers among the strongest data consistency and safety guarantees of any distributed database
By configuring the strictest read concern and write concern levels and using its default replication protocol, MongoDB 3.4 exhibits the highest levels of data consistency, correctness, and safety under extreme failure conditions, based on Jepsen testing
With the linearizable read concern, majority write concern, Raft-inspired replication protocol V1, and WiredTiger storage engine, MongoDB has invested significant engineering resources in advancing the state of the art in distributed systems design
We complemented this investment by integrating the Jepsen linearizability tests into the MongoDB Evergreen continuous integration suite. This ensures continued adherence to Jepsen tests in MongoDB’s ongoing development work and future releases.
The Jepsen testing uncovered bugs in older MongoDB releases, and in the MongoDB 3.4 release candidate with the V1 replication protocol. We resolved these bugs in the latest production releases of the database, as validated by Jepsen.
MongoDB provides industry-leading tunable consistency options, enabling developers to balance consistency against performance goals.