Teaching rigorous distributed systems with efficient model checking

7Citations
Citations of this article
45Readers
Mendeley users who have this article in their library.

Abstract

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.

Cite

CITATION STYLE

APA

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

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free