You are here
Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code
Ryan Stutsman, University of Utah; Collin Lee and John Ousterhout, Stanford University
This paper describes how a rules-based approach allowed us to solve a broad class of challenging distributed system problems in the RAMCloud storage system. In the rules-based approach, behavior is described with small sections of code that trigger independently based on system state; this provides a clean separation between the deterministic and nondeterministic parts of an algorithm. To simplify the implementation of rules-based modules, we developed a task abstraction for information hiding and complexity management, pools for grouping tasks and minimizing the cost of rule evaluation, and a polling-based asynchronous RPC system. The rules-based approach is a special case of an event-based state machine, but it encourages a cleaner factoring of code.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Ryan Stutsman and Collin Lee and John Ousterhout},
title = {Experience with {Rules-Based} Programming for Distributed, Concurrent, {Fault-Tolerant} Code},
booktitle = {2015 USENIX Annual Technical Conference (USENIX ATC 15)},
year = {2015},
isbn = {978-1-931971-225},
address = {Santa Clara, CA},
pages = {17--30},
url = {https://www.usenix.org/conference/atc15/technical-session/presentation/stutsman},
publisher = {USENIX Association},
month = jul
}
connect with us