Finding Almost-Invariants in Distributed Systems
2011 (English)In: Proceedings of the 30th IEEE Symposium on Reliable Distributed Systems (SRDS), IEEE conference proceedings, 2011, -182 p.Conference paper (Refereed)
It is notoriously hard to develop dependable distributed systems. This is partly due to the difficulties in foreseeing various corner cases and failure scenarios while implementing a system that will be deployed over an asynchronous network. In contrast, reasoning about the desired distributed system behavior and the corresponding invariants is easier than reasoning about the code itself. Further, the invariants can be used for testing, theorem proving, and runtime enforcement. In this paper, we propose an approach to observe the system behavior and automatically infer invariants which reveal implementation bugs. Using our tool, Avenger, we automatically generate a large number of potentially relevant properties, check them within the time and spatial domains using traces of system executions, and filter out all but a few properties before reporting them to the developer. Our key insight in filtering is that a good candidate for an invariant is the one that holds in all but a few cases, i.e., an “almost-invariant”. Our experimental results with the XORP BGP implementation demonstrate Avenger’s ability to identify the almost-invariants that lead the developer to programming errors.
Place, publisher, year, edition, pages
IEEE conference proceedings, 2011. -182 p.
IdentifiersURN: urn:nbn:se:kth:diva-147103DOI: 10.1109/SRDS.2011.29ISI: 000298004600020ScopusID: 2-s2.0-81055157855ISBN: 978-1-4577-1349-1OAI: oai:DiVA.org:kth-147103DiVA: diva2:727671
The 30th IEEE Symposium on Reliable Distributed Systems (SRDS)4-7 Oct. 2011 Madrid
QC 201407042014-06-232014-06-232014-07-04Bibliographically approved