Distributed Computing

, Volume 17, Issue 2, pp 107–130 | Cite as

Finding missing synchronization in a distributed computation using controlled re-execution

  • Neeraj MittalEmail author
  • Vijay K. Garg


Correct distributed programs are hard to write. Not surprisingly, distributed systems are especially vulnerable to software faults. Testing and debugging is an important way to improve the reliability of distributed systems. A distributed debugger equipped with the mechanism to re-execute the traced computation in a controlled fashion can greatly facilitate the detection and localization of bugs. This approach gives rise to a general problem of predicate control, which takes a computation and a safety property specified on the computation as inputs, and produces a controlled computation, with added synchronization, that maintains the given safety property as output. We devise efficient control algorithms for two classes of useful predicates, namely region predicates and disjunctive predicates. For the former, we prove that the control algorithm is optimal in the sense that it guarantees maximum concurrency possible in the controlled computation. For the latter, we prove that our control algorithm generates the least number of synchronization dependencies and therefore has optimal message-complexity. Furthermore, we provide a necessary and sufficient condition under which it is possible to efficiently compute a minimal controlling synchronization for a general predicate. We also give an algorithm to compute such a synchronization under the condition provided.


Distributed system Debugging Software-fault tolerance Controlled re-execution Predicate control 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chandy KM, Lamport L: Distributed Snapshots: Determining Global States of Distributed Systems. ACM Transactions on Computer Systems 3(1):63-75 (1985)CrossRefGoogle Scholar
  2. 2.
    Chase C, Garg VK: Detection of Global Predicates: Techniques and their Limitations. Distributed Computing (DC) 11(4):191-201 (1998)Google Scholar
  3. 3.
    Cooper R, Marzullo K: Consistent Detection of Global Predicates. In: Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging, pp 163-173, Santa Cruz, California, 1991Google Scholar
  4. 4.
    Cormen TH, Leiserson CE, Rivest RL: Introduction to Algorithms. The MIT Press, Cambridge, Massachusetts, 1991Google Scholar
  5. 5.
    Fidge C: Logical Time in Distributed Computing Systems. IEEE Computer 24(8):28-33 (1991)Google Scholar
  6. 6.
    Huang Y, Kintala C: Software Implemented Fault Tolerance: Technologies and Experience. In: Proceedings of the IEEE Fault-Tolerant Computing Symposium (FTCS), pp 138-144, June 1993Google Scholar
  7. 7.
    Hurfin M, Mizuno M, Raynal M, Singhal M: Efficient Distributed Detection of Conjunctions of Local Predicates in Asynchronous Computations. In: Proceedings of the 8th IEEE Symposium on Parallel and Distributed Processing (SPDP), pp 588-594, New Orleans, October 1996Google Scholar
  8. 8.
    Johnson DB, Zwaenepoel W: Recovery in Distributed Systems Using Optimistic Message Logging and Checkpointing. In: Proceedings of the 6th ACM Symposium on Principles of Distributed Computing (PODC), pp 171-181, August 1988Google Scholar
  9. 9.
    Kilgore R, Chase C: Testing Distributed Programs Containing Racing Messages. The Computer Journal 40(8):489-498 (1997)Google Scholar
  10. 10.
    Lamport L: Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM (CACM) 21(7):558-565 (1978)zbMATHGoogle Scholar
  11. 11.
    LeBlanc TJ, Mellor-Crummey JM: Debugging Programs with Instant Replay. IEEE Transactions on Computers C-36(4):471-482 (1987)Google Scholar
  12. 12.
    Maggiolo-Schettini A, Welde H, Winkowski J: Modeling a Solution for a Control Problem in Distributed Systems by Restrictions. Theoretical Computer Science 13(1):61-83 (1981)CrossRefzbMATHGoogle Scholar
  13. 13.
    Mattern F: Virtual Time and Global States of Distributed Systems. In: Parallel and Distributed Algorithms: Proceedings of the Workshop on Distributed Algorithms (WDAG), pp 215-226. Elsevier Science Publishers B. V. (North-Holland), 1989Google Scholar
  14. 14.
    Miller BP, Choi J: Breakpoints and Halting in Distributed Programs. In: Proceedings of the 8th IEEE International Conference on Distributed Computing Systems (ICDCS), pp 316-323, 1988Google Scholar
  15. 15.
    Mittal N, Garg VK: Debugging Distributed Programs Using Controlled Re-execution. In: Proceedings of the 19th ACM Symposium on Principles of Distributed Computing (PODC), pp 239-248, Portland, Oregon, July 2000Google Scholar
  16. 16.
    Sen A, Garg VK: Detecting Temporal Logic Predicates in the Happened-Before Model. In: Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS), Florida, April 2002Google Scholar
  17. 17.
    Stoller SD, Liu YA: Efficient Symbolic Detection of Global Properties in Distributed Systems. In Hu AJ, Vardi MY (eds) Proceedings of the 10th International Conference on Computer-Aided Verification (CAV), volume 1427 of Lecture Notes in Computer Science (LNCS), pp 357-368. Springer-Verlag, 1998Google Scholar
  18. 18.
    Stoller SD, Unnikrishnan L, Liu YA: Efficient Detection of Global Properties in Distributed Systems Using Partial-Order Methods. In: Proceedings of the 12th International Conference on Computer-Aided Verification (CAV), volume 1855 of Lecture Notes in Computer Science (LNCS), pp 264-279. Springer-Verlag, July 2000Google Scholar
  19. 19.
    Tarafdar A: Software Fault Tolerance in Distributed Systems Using Controlled Re-execution. PhD thesis, The University of Texas at Austin, August 2000Google Scholar
  20. 20.
    Tarafdar A, Garg VK: Predicate Control for Active Debugging of Distributed Programs. In: Proceedings of the 9th IEEE Symposium on Parallel and Distributed Processing (SPDP), pp 763-769, Orlando, 1998Google Scholar
  21. 21.
    Tarafdar A, Garg VK: Software Fault Tolerance of Concurrent Programs Using Controlled Re-execution. In: Proceedings of the 13th Symposium on Distributed Computing (DISC), pp 210-224, Bratislava, Slovak Republic, September 1999Google Scholar
  22. 22.
    Torres-Pomales W: Software Fault Tolerance: A Tutorial, 2000. NASA Langley Research CenterGoogle Scholar
  23. 23.
    Wang Y-M, Huang Y, Fuchs WK, Kintala C, Suri G: Progressive Retry for Software Failure Recovery in Message-Passing Applications. IEEE Transactions on Computers 46(10):1137-1141 (1997)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin/Heidelberg 2004

Authors and Affiliations

  1. 1.Department of Computer ScienceThe University of Texas at DallasRichardsonUSA
  2. 2.Department of Electrical and Computer EngineeringThe University of Texas at AustinAustinUSA

Personalised recommendations