Slicify: Fault Injection Testing for Network Partitions
Modern distributed systems are complex. They include hundreds of components that implement complex protocols such as scheduling, replication, and access control. These systems are expected to offer high availability and preserve their data even in the face of external environmental faults. Testing is the primary approach for improving system reliability. Testing against environmental faults such as hardware failures, memory corruption, and network problems is complicated since they can happen at any step in the protocol and affect any component.We present Slicify, a generic framework to test the network partition resilience of distributed systems. Slicify injects network partitions during unit tests to analyze system behavior in their presence. Slicify reduces the test space in an application-agnostic fashion with its novel connection tracking mechanism. We verify Slicify’s capabilities by reproducing previously documented failures in two production systems. In addition, we demonstrate its effectiveness by uncovering new failures in three popular distributed systems.
Authors
- Sreeharsha Udayashankar (ORCID: https://orcid.org/0000-0003-0804-1600)
- Samer Al-Kiswany (ORCID: https://orcid.org/0000-0002-6429-9983)
- Seba Khaleel
Institutions
- University of Waterloo (CA)
Publication Details
- Published
- 2024-10-21
- DOI
- https://doi.org/10.1109/mascots64422.2024.10786337
- Primary Topic
- Software System Performance and Reliability
- Type
- article
- Field-Weighted Citation Impact
- 0.00