A Formal Framework for Predicting Distributed System Performance under Faults (Extended Version)
Ziwei Zhou, Si Liu, Zhou Zhou, Peixin Wang, MIn Zhang
TL;DR
This work tackles predicting distributed system performance under faults by introducing a formal Maude-based framework that separates system models from a reusable fault library. It integrates a fault injector with model composition and transformation steps, enabling end-to-end performance prediction via statistical model checking using QuaTEx and PVeStA, while preserving the absence of nondeterminism through the $pmaude$ property. The authors implement an automated tool, PerF, and demonstrate its predictive accuracy across six diverse systems (2PC+CTP, Raft, PowerDNS, Cassandra, RAMP, Fast-HotStuff), with model-based results aligning closely to deployment evaluations under multiple fault scenarios. The approach enables proactive, design-time exploration of performance under realistic fault conditions and complements deployment fault injection by broadening the fault space that can be analyzed before implementation.
Abstract
Today's distributed systems operate in complex environments that inevitably involve faults and even adversarial behaviors. Predicting their performance under such environments directly from formal designs remains a longstanding challenge. We present the first formal framework that systematically enables performance prediction of distributed systems across diverse faulty scenarios. Our framework features a fault injector together with a wide range of faults, reusable as a library, and model compositions that integrate the system and the fault injector into a unified model suitable for statistical analysis of performance properties such as throughput and latency. We formalize the framework in Maude and implement it as an automated tool, PERF. Applied to representative distributed systems, PERF accurately predicts system performance under varying fault settings, with estimations from formal designs consistent with evaluations on real deployments.
