VConMC: Enabling Consistency Verification for Distributed Systems Using Implementation-Level Model Checkers and Consistency Oracles
-
Published:2024-03-21
Issue:6
Volume:13
Page:1153
-
ISSN:2079-9292
-
Container-title:Electronics
-
language:en
-
Short-container-title:Electronics
Affiliation:
1. Department of Computer Science and Engineering, Hanyang University, Ansan 15588, Republic of Korea
Abstract
Many cloud services are relying on distributed key-value stores such as ZooKeeper, Cassandra, HBase, etc. However, distributed key-value stores are notoriously difficult to design and implement without any mistakes. Because data consistency is the contract for clients that defines what the correct values to read are for a given history of operations under a specific consistency model, consistency violations can confuse client applications by showing invalid values. As a result, serious consequences such as data loss, data corruption, and unexpected behavior of client applications can occur. Software bugs are one of main reasons why consistency violations may occur. Formal verification techniques may be used to make designs correct and minimize the risks of having bugs in the implementation. However, formal verification is not a panacea due to limitations such as the cost of verification, inability to verify existing implementations, and human errors involved. Implementation-level model checking has been heavily explored by researchers for the past decades to formally verify whether the underlying implementation of distributed systems have bugs or not. Nevertheless, previous proposals are limited because their invariant checking is not versatile enough to check for the wide spectrum of consistency models, from eventual consistency to strong consistency. In this work, consistency oracles are employed for consistency invariant checking that can be used by implementation-level model checkers to formally verify data consistency model implementations of distributed key-value stores. To integrate consistency oracles with implementation-level distributed system model checkers, the partial-order information obtained via API is leveraged to avoid the exhaustive search during consistency invariant checking. Our evaluation results show that, by using the proposed method for consistency invariant checking, our prototype model checker, VConMC, can detect consistency violations caused by several real-world software bugs in a well-known distributed key-value store, ZooKeeper.
Funder
Korea Government Hanyang University 2022 Research Institute of Engineering and Technology Research Fund at Hanyang University ERICA
Reference72 articles.
1. Hunt, P., Konar, M., Junqueira, F.P., and Reed, B. (2010, January 23–25). ZooKeeper: Wait-free Coordination for Internet-scale Systems. Proceedings of the 2010 USENIX Conference on USENIX Annual Technical Conference, Berkeley, CA, USA. 2. (2023, October 13). MongoDB. Available online: https://www.mongodb.com/. 3. Cassandra: A Decentralized Structured Storage System;Lakshman;SIGOPS Oper. Syst. Rev.,2010 4. (2023, October 10). Apache HBase. Available online: https://hbase.apache.org. 5. Gunawi, H.S., Hao, M., Leesatapornwongsa, T., Patana-anake, T., Do, T., Adityatama, J., Eliazar, K.J., Laksono, A., Lukman, J.F., and Martin, V. (2014, January 3–5). What Bugs Live in the Cloud? A Study of 3000+ Issues in Cloud Systems. Proceedings of the 5th ACM Symposium on Cloud Computing (SoCC), Seattle, WA, USA.
|
|