Efficient dependency tracking for relevant events in concurrent systems

  • Authors:
  • Anurag Agarwal;Vijay K. Garg

  • Affiliations:
  • Department of Computer Sciences, University of Texas at Austin, Austin, TX;Department of Electrical and Computer Engineering, University of Texas at Austin, Austin, TX

  • Venue:
  • Distributed Computing
  • Year:
  • 2007
  • Cross-Entropy-Based Replay of Concurrent Programs

    FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

In a concurrent system with N processes, vector clocks of size N are used for tracking dependencies between the events. Using vectors of size N leads to scalability problems. Moreover, association of components with processes makes vector clocks cumbersome and inefficient for systems with a dynamic number of processes. We present a class of logical clock algorithms, called chain clock, for tracking dependencies between relevant events based on generalizing a process to any chain in the computation poset. Chain clocks are generally able to track dependencies using fewer than N components and also adapt automatically to systems with dynamic number of processes. We compared the performance of Dynamic Chain Clock (DCC) with vector clock for multithreaded programs in Java. With 1% of total events being relevant events, DCC requires 10 times fewer components than vector clock and the timestamp traces are smaller by a factor of 100. For the same case, although DCC requires shared data structures, it is still 10 times faster than vector clock in our experiments. We also study the class of chain clocks which perform optimally for posets of small width and show that a single algorithm cannot perform optimally for posets of small width as well as large width.