Journal Home > Volume 37 , Issue 1

MongoDB is one of the first commercial distributed databases that support causal consistency. Its implementation of causal consistency combines several research ideas for achieving scalability, fault tolerance, and security. Given its inherent complexity, a natural question arises: "Has MongoDB correctly implemented causal consistency as it claimed?" To address this concern, the Jepsen team has conducted black-box testing of MongoDB. However, this Jepsen testing has several drawbacks in terms of specification, test case generation, implementation of causal consistency checking algorithms, and testing scenarios, which undermine the credibility of its reports. In this work, we propose a more thorough design of Jepsen testing of causal consistency of MongoDB. Specifically, we fully implement the causal consistency checking algorithms proposed by Bouajjani et al. and test MongoDB against three well-known variants of causal consistency, namely CC, CCv, and CM, under various scenarios including node failures, data movement, and network partitions. In addition, we develop formal specifications of causal consistency and their checking algorithms in TLA+, and verify them using the TLC model checker. We also explain how TLA+ specification can be related to Jepsen testing.

File
jcst-37-1-128-Highlights.pdf (810.3 KB)
Publication history
Copyright

Publication history

Received: 01 June 2021
Accepted: 20 December 2021
Published: 31 January 2022
Issue date: January 2022

Copyright

©Institute of Computing Technology, Chinese Academy of Sciences 2022
Return