English

Verifying Transactional Consistency of MongoDB

Distributed, Parallel, and Cluster Computing 2022-06-17 v3

Abstract

MongoDB is a popular general-purpose, document-oriented, distributed NoSQL database. It supports transactions in three different deployments: single-document transactions utilizing the WiredTiger storage engine in a standalone node, multi-document transactions in a replica set which consists of a primary node and several secondary nodes, and distributed transactions in a sharded cluster which is a group of multiple replica sets, among which data is sharded. A natural and fundamental question about MongoDB transactions is: What transactional consistency guarantee do MongoDB Transactions in each deployment provide? However, it lacks both concise pseudocode of MongoDB transactions in each deployment and formal specification of the consistency guarantees which MongoDB claimed to provide. In this work, we formally specify and verify the transactional consistency protocols of MongoDB. Specifically, we provide a concise pseudocode for the transactional consistency protocols in each MongoDB deployment, namely WIREDTIGER, REPLICASET, and SHARDEDCLUSTER, based on the official documents and source code. We then prove that WIREDTIGER, REPLICASET, and SHARDEDCLUSTER satisfy different variants of snapshot isolation, namely Strong-SI, Realtime-SI, and Session-SI, respectively. We also propose and evaluate efficient white-box checking algorithms for MongoDB transaction protocols against their consistency guarantees, effectively circumventing the NP-hard obstacle in theory.

Keywords

Cite

@article{arxiv.2111.14946,
  title  = {Verifying Transactional Consistency of MongoDB},
  author = {Hongrong Ouyang and Hengfeng Wei and Yu Huang and Haixiang Li and Anqun Pan},
  journal= {arXiv preprint arXiv:2111.14946},
  year   = {2022}
}

Comments

v0.2, update with proof of correctness. 17 pages(16 pages excluding reference), 8 algorithms, 5 tables and 2 figures

R2 v1 2026-06-24T07:56:41.040Z