Abstract
Predicate detection, which involves determining if a distributed computation satisfies a given predicate, may require searching a state space that is exponential in the number of processes. To ameliorate this problem of state explosion, the notion of a computation slice was introduced. A computation slice is a concise representation of the consistent cuts of a computation that satisfy a given predicate. It suffices to search the state-space of the slice to detect a predicate, which is generally much smaller than the original computation. Traditionally, algorithms for computation slicing have been offline in nature, where the entire set of events is known apriori. Online algorithms are useful in applications where detecting a fault as soon as it arises is critical. To be practical, online algorithms must only perform incremental updates to the slice, and not recompute it from scratch. In this paper, we present online algorithms to generate the slice with respect to temporal logicĀ (or path based) predicates AG(B), EG(B) and EF(B), when B is a regular state-based predicate. To our knowledge, these are the first online algorithms that compute slices for path-based predicates. Our algorithms are efficient, with an amortized time complexity of O(n 2), where n is the number of processes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Chandy, K.M., Lamport, L.: Distributed Snapshots: Determining Global States of Distributed Systems. ACM Transactions on Computer SystemsĀ 3(1), 63ā75 (1985)
Cooper, R., Marzullo, K.: Consistent Detection of Global Predicates. In: Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 163ā173 (1991)
Alagar, S., Venkatesan, S.: Techniques to Tackle State Explosion in Global Predicate Detection. IEEE Transactions on Software Engineering (TSE)Ā 27(8), 704ā714 (2001)
Stoller, S.D., Schneider, F.: Faster Possibility Detection by Combining Two Approaches. In: Helary, J.-M., Raynal, M. (eds.) WDAG 1995. LNCS, vol.Ā 972, pp. 318ā332. Springer, Heidelberg (1995)
Clarke, E.M., Grumberg, O.: Avoiding the state explosion problem in temporal logic model checking. In: Proceedings of the 6th ACM Symposium on Principles of Distributed Computing (PODC), pp. 294ā303 (1987)
Mittal, N., Garg, V.K.: Techniques and applications of computation slicing. Distributed ComputingĀ 17, 251ā277 (2005)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press (December 1999)
Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol.Ā 1032. Springer, Heidelberg (1996)
Stoller, S.D., Unnikrishnan, L., Liu, Y.A.: Efficient Detection of Global Properties in Distributed Systems Using Partial-Order Methods. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol.Ā 1855, pp. 264ā279. Springer, Heidelberg (2000)
Mittal, N., Sen, A., Garg, V.K.: Solving Computation Slicing Using Predicate Detection. IEEE Transactions on Parallel and Distributed Systems (TPDS)Ā 18(12), 1700ā1713 (2007)
Leucker, M., Schallhart, C.: A Brief Account of Runtime Verification. The Journal of Logic and Algebraic ProgrammingĀ 78(5), 293ā303 (2009)
Drusinsky, D.: The Temporal Rover and the ATG Rover. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol.Ā 1885, pp. 323ā330. Springer, Heidelberg (2000)
Kim, M., Kannan, S., Lee, I., Sokolsky, O., Viswanathan, M.: Java-MaC: A Run-time Assurance Tool for Java Programs. Electronic Notes in Theoretical Computer ScienceĀ 55(2), 218ā235 (2001)
Havelund, K., RoÅu, G.: Monitoring Java Programs with Java PathExplorer. Electronic Notes in Theoretical Computer ScienceĀ 55(2), 200ā217 (2001)
Sen, K., RoÅu, G., Agha, G.: Detecting Errors in Multithreaded Programs by Generalized Predictive Analysis of Executions. In: Steffen, M., Zavattaro, G. (eds.) FMOODS 2005. LNCS, vol.Ā 3535, pp. 211ā226. Springer, Heidelberg (2005)
Chen, F., ÅerbÄnuÅ£Ä, T.F., RoÅu, G.: jPredictor: A Predictive Runtime Analysis Tool for Java. In: Proceedings of the International Conference on Software Engineering, ICSE (2008)
Chen, F., RoÅu, G.: Parametric and Sliced Causality. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol.Ā 4590, pp. 240ā253. Springer, Heidelberg (2007)
Garg, V.K.: Elements of distributed computing. John Wiley & Sons, Inc. (2002)
Sen, A., Garg, V.K.: Detecting Temporal Logic Predicates in Distributed Programs Using Computation Slicing. In: Papatriantafilou, M., Hunel, P. (eds.) OPODIS 2003. LNCS, vol.Ā 3144, pp. 171ā183. Springer, Heidelberg (2004)
Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM (CACM)Ā 21(7), 558ā565 (1978)
Natarajan, A., Mittal, N., Garg, V.K.: Online Algorithms to Generate Slices for Regular Temporal Logic Predicates. Technical Report UTDCS-11-12, Department of Computer Science, The University of Texas at Dallas (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Natarajan, A., Mittal, N., Garg, V.K. (2014). Online Algorithms to Generate Slices for Regular Temporal Logic Predicates. In: Chatterjee, M., Cao, Jn., Kothapalli, K., Rajsbaum, S. (eds) Distributed Computing and Networking. ICDCN 2014. Lecture Notes in Computer Science, vol 8314. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45249-9_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-45249-9_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45248-2
Online ISBN: 978-3-642-45249-9
eBook Packages: Computer ScienceComputer Science (R0)