Decentralized Runtime Verification for LTL Properties Using Global Clock

Runtime verification is the process of verifying critical behavioral properties in big complex systems, where formal verification is not possible due to state space explosion. There have been several attempts to design efficient algorithms for runtime verification. Most of these algorithms have a formally defined correctness property as a reference and check whether the system consistently meets the demands of the property or it fails to satisfy the property at some point in runtime. LTL is a commonly used language for defining these kinds of properties and is also the language of focus in this paper. One of the main target systems for runtime verification are distributed systems, where the system consists of a number of processes connecting to each other using asynchronous message passing. There are two approaches for runtime verification in distributed systems. The first one consists of centralized algorithms, where all processes send their events to a specific decision-making process, which keeps track of all the events to evaluate the specified property. The second approach consists of distributed algorithms, where processes check the specified property collaboratively. Centralized algorithms are simple, but usually involve sending a large number of messages to the decision-making process. They also suffer from the problem of single point of failure, as well as high traffic loads towards one process. Distributed algorithms, on the other hand, are usually more complicated, but once implemented, offer more efficiency. In this paper, we focus on a class of asynchronous distributed systems, where each process can change its own local state at any arbitrary time and completely independent of others, while all processes share a global clock. We propose a sound and complete algorithm for decentralized runtime verification of LTL properties in these systems.

[1]  Felix Klaedtke,et al.  Failure-aware Runtime Verification of Distributed Systems , 2015, FSTTCS.

[2]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

[3]  Martin Leucker,et al.  Monitoring of Real-Time Properties , 2006, FSTTCS.

[4]  Martin Leucker,et al.  A brief account of runtime verification , 2009, J. Log. Algebraic Methods Program..

[6]  Torben Scheffel,et al.  Three-valued asynchronous distributed runtime verification , 2014, 2014 Twelfth ACM/IEEE Conference on Formal Methods and Models for Codesign (MEMOCODE).

[7]  Borzoo Bonakdarpour,et al.  Crash-Resilient Decentralized Synchronous Runtime Verification , 2018, 2018 IEEE 37th Symposium on Reliable Distributed Systems (SRDS).

[8]  Koushik Sen,et al.  Efficient decentralized monitoring of safety in distributed systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[9]  Christian Colombo,et al.  Organising LTL monitors over distributed systems with a global clock , 2016, Formal Methods Syst. Des..

[10]  Vijay K. Garg,et al.  A Distributed Abstraction Algorithm for Online Predicate Detection , 2013, 2013 IEEE 32nd International Symposium on Reliable Distributed Systems.

[11]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[12]  Felix Klaedtke,et al.  Runtime Verification of Temporal Properties over Out-of-Order Data Streams , 2017, CAV.

[13]  Patrick Valduriez,et al.  Principles of Distributed Database Systems , 1990 .

[14]  T. Kanade Model-Based Testing of Reactive Systems , 2005 .

[15]  Yliès Falcone,et al.  Efficient and Generalized Decentralized Monitoring of Regular Languages , 2014, FORTE.

[16]  Borzoo Bonakdarpour,et al.  Decentralized Runtime Verification of LTL Specifications in Distributed Systems , 2015, 2015 IEEE International Parallel and Distributed Processing Symposium.