Writing correct distributed systems code is difficult, especially for novice programmers. The inherent asynchrony and need for fault-tolerance make errors almost inevitable. Industrial-strength testing and model checking have been shown to be effective at uncovering bugs, but they come at a cost — in both time and effort — that is far beyond what students can afford. To address this, we have developed an efficient model checking framework and visual debugger for distributed systems, with the goal of helping students find and fix bugs in near real-time. We identify two novel techniques for reducing the search state space to more efficiently find bugs in student implementations. We report our experiences using these tools to help over two hundred students build a correct, linearizable, fault-tolerant, dynamically-sharded key–value store.
CITATION STYLE
Michael, E., Woos, D., Anderson, T., Ernst, M. D., & Tatlock, Z. (2019). Teaching rigorous distributed systems with efficient model checking. In Proceedings of the 14th EuroSys Conference 2019. Association for Computing Machinery, Inc. https://doi.org/10.1145/3302424.3303947
Mendeley helps you to discover research relevant for your work.