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. Although DCC requires shared data structures, it is still 10 times faster than vector clock in our experiments.
- A. Agarwal and V. K. Garg. Chain clocks: Efficient dependency tracking for shared-memory systems. Technical report, University of Texas at Austin, 2004. Available as "http://maple.ece.utexas.edu/TechReports/2004/TR-PDS-2004-005.ps".Google Scholar
- S. Alagar and S. Venkatesan. Techniques to tackle state explosion in global predicate detection. IEEE Transactions on Software Engineering, 27(8):704--714, Aug. 2001. Google ScholarDigital Library
- K. Audenaert. Clock trees: Logical clocks for programs with nested parallelism. IEEE Transactions on Software Engineering, 23(10):646--658, October 1997. Google ScholarDigital Library
- O. Babaoglu and K. Marzullo. Consistent global states of distributed systems: Fundamental concepts and mechanisms. In S. Mullender, editor, Distributed Systems, pages 55--96. Addison-Wesley, 1993. Google ScholarDigital Library
- R. Baldoni and G. Melideo. Tradeoffs in message overhead versus detection time in causality tracking. Technical Report 06-01, Dipartimento di Informatica e Sistemistica, Univ. of Rome, 2000.Google Scholar
- B. Charron-Bost. Concerning the size of logical clocks in distributed systems. Inf. Process. Lett., 39:11--16, July 1991. Google ScholarDigital Library
- R. Cooper and K. Marzullo. Consistent detection of global predicates. In Proc. of the Workshop on Parallel and Distributed Debugging, pages 163--173, Santa Cruz, CA, May 1991. ACM/ONR. Google ScholarDigital Library
- B. A. Davey and H. A. Priestley. Introduction to Lattices and Order. Cambridge University Press, 1990.Google Scholar
- S. Felsner. On-line chain partitions of orders. Theoretical Computer Science, 175:283--292, 1997. Google ScholarDigital Library
- C. J. Fidge. Timestamps in message-passing systems that preserve the partial ordering. Proc. of the 11th Australian Computer Science Conference, 10(1):56--66, Feb 1988.Google Scholar
- V. K. Garg and C. Skawratananond. String realizers of posets with applications to distributed computing. In 20th Annual ACM Symposium on Principles of Distributed Computing (PODC-00), pages 72 -- 80. ACM, Aug. 2001. Google ScholarDigital Library
- V. K. Garg and C. Skawratananond. On timestamping synchronous communications. In 22nd International Conference on Distributed Computing Systems (ICDCS' 02), pages 552--560. IEEE, 2002. Google ScholarDigital Library
- V. K. Garg and B. Waldecker. Detection of unstable predicates. In Proc. of the Workshop on Parallel and Distributed Debugging, Santa Cruz, CA, May 1991. ACM/ONR.Google Scholar
- H. A. Kierstead. Recursive colorings of highly recursive graphs. Canad. J. Math, 33(6):1279--1290, 1981.Google ScholarCross Ref
- L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558--565, July 1978. Google ScholarDigital Library
- K. Marzullo and L. S. Sabel. Efficient detection of a class of stable properties. Distributed Computing, 8(2):81--91, 1994. Google ScholarDigital Library
- F. Mattern. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms: Proc. of the Int'l Workshop on Parallel and Distributed Algorithms, pages 215--226, 1989.Google Scholar
- K. Sen, G. Rosu, and G. Agha. Runtime safety analysis of multithreaded programs. In Proc. of the 11th ACM Symposium on the Foundations of Software Engineering 2003, Sept. 2003. Google ScholarDigital Library
- M. Singhal and A. Kshemkalyani. An efficient implementation of vector clocks. Information Processing Letters, 43(10):47--52, August 1992. Google ScholarDigital Library
- R. E. Strom and S. Yemeni. Optimistic recovery in distributed systems. ACM Transactions on Computer Systems, 3(3):204--226, 1985. Google ScholarDigital Library
- F. Torres-Rojas and M. Ahamad. Plausible clocks: Constant size logical clocks for distributed systems. In Proc. of 10th Int'l Workshop Distributed Algorithms, pages 71--88, 1996. Google ScholarDigital Library
- P. A. S. Ward. A framework algorithm for dynamic, centralized dimension-bounded timestamps. In Proc. of the 2000 conference of the Centre for Advanced Studies on Collaborative research, page 14, 2000. Google ScholarDigital Library
- D. B. West. The Art of Combinatorics Volume III: Order and Optimization. Preprint edition.Google Scholar
Index Terms
- Efficient dependency tracking for relevant events in shared-memory systems
Recommendations
Efficient dependency tracking for relevant events in concurrent systems
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 ...
Encoded Vector Clock: Using Primes to Characterize Causality in Distributed Systems
ICDCN '18: Proceedings of the 19th International Conference on Distributed Computing and NetworkingThe vector clock is a fundamental tool for tracking causality in distributed applications. Unfortunately, it does not scale well to large systems because each process needs to maintain a vector of size n, where n is the total number of processes in the ...
Bounded concurrent timestamp systems using vector clocks
Shared registers are basic objects used as communication mediums in asynchronous concurrent computation. A concurrent timestamp system is a higher typed communication object, and has been shown to be a powerful tool to solve many concurrency control ...
Comments