This Article 
 Bibliographic References 
 Add to: 
Efficient Causality-Tracking Timestamping
September/October 2003 (vol. 15 no. 5)
pp. 1239-1250

Abstract—Vector clocks are the appropriate mechanism used to track causality among the events produced by a distributed computation. Traditional implementations of vector clocks require application messages to piggyback a vector of n integers (where n is the number of processes). This paper investigates the tracking of the causality relation on a subset of events (namely, the events that are defined as "relevant" from the application point of view) in a context where communication channels are not required to be FIFO, and where there is no a priori information on the connectivity of the communication graph or the communication pattern. More specifically, the paper proposes a suite of simple and efficient implementations of vector clocks that address the reduction of the size of message timestamps, i.e., they do their best to have message timestamps whose size is less than n. The relevance of such a suite of protocols is twofold. From a practical side, it constitutes the core of an adaptive timestamping software layer that can used by underlying applications. From a theoretical side, it provides a comprehensive view that helps better understand distributed causality-tracking mechanisms.

[1] R. Baldoni and M. Raynal, Fundamentals of Distributed Computing: A Practical Tour of Vector Clocks IEEE Distributed Systems Online, vol. 3, no. 2, 2002.
[2] K. Birman, A. Schiper, and P. Stephenson, “Lightweight Causal and Atomic Group Multicast,” ACM Trans. Computer Systems, vol. 9, no. 3, pp. 272-314, Aug. 1991.
[3] B. Charron-Bost, "Concerning the Size of Logical Clocks in Distributed Systems," Information Processing Letters, vol. 39, pp. 11-16, 1991.
[4] C.J. Fidge, Timestamps in Message-Passing Systems that Preserve Partial Ordering Proc. 11th Australian Computing Conf., pp. 56-66, 1988.
[5] E. Fromentin, C. Jard, G.V. Jourdan, and M. Raynal, On-the-Fly Analysis of Distributed Computations Information Processing Letters, vol. 54, pp. 267-274, 1995.
[6] E. Fromentin and M. Raynal, Shared Global States in Distributed Computations J. Computer and System Sciences, vol. 55, no. 3, pp. 522-528, 1997.
[7] V.K. Garg, Principles of Distributed Systems, Kluwer Academic Publishing, Boston, 1996.
[8] V.K. Garg, Observation and Control for Debugging Distributed Computations Proc. Third Int'l Workshop Automatic Debugging, pp 1-12, 1997.
[9] J.M. Hélary, G. Melideo, and M. Raynal, Tracking Causality in Distributed Systems: A Suite of Efficient Protocols Proc. Seventh Int'l Colloquium on Structural Information and Communication Complexity (SIROCCO), pp. 181-195, June 2000.
[10] L. Lamport, "Time, clocks and the ordering of events in a distributed system," Comm. ACM, vol. 21, no. 7, pp. 558-565, July 1978.
[11] B. Liskov and R. Ladin, Highly Available Distributed Services and Fault-Tolerant Distributed Garbage Collection Proc. Fifth ACM Symp. Principles of Distributed Computing, pp. 29-39, 1986.
[12] K. Marzullo and L. Sabel, Efficient Detection of a Class of Stable Properties Distributed Computing, vol. 8, no. 2, pp. 81-91, 1994.
[13] F. Mattern, Virtual Time and Global States of Distributed Systems Proc. Int'l Conf. Parallel and Distributed Algorithms, Cosnard, Quinton, Raynal, and Robert, eds., pp. 215-226, 1988.
[14] S. Meldal,S. Sankar,, and J. Vera,“Exploiting locality in maintaining potential causality,” Proc. Tenth Annual ACM Symp. on Principles of Distributed Computing, pp. 231-239,New York, Aug. 1991. Washington, D.C.: ACM Press. Also Stanford Univ. Computer Systems Laboratory Technical Report No.CSL-TR-91-466.
[15] D.S. Parker et al., Detection of Mutual Inconsistency in Distributed Systems IEEE Trans. Software Eng., vol. 9, no. 3, pp. 240-246, 1983.
[16] M. Raynal, A Distributed Algorithm to Prevent Mutual Drift Between$n$Logical Clocks Information Processing Letters, vol. 24, pp. 199-202, 1987.
[17] M. Singhal and A. Kshemkalyani, "An Efficient Implementation of Vector Clocks," Information Processing Letters, vol. 43, pp. 47-52, 1992.
[18] R.E. Strom and S.A. Yemini, "Optimistic Recovery in Distributed Systems," ACM Trans. Computer Systems, vol. 3, no. 3, pp. 204-226, Aug. 1985.
[19] D.B. Terry, M.M. Theimer, K. Petersen, A.J. Demers, M.J. Spreitzer, and C.H. Hauser, Managing Update Conflicts in a Weakly Connected Replicated Storage System Proc. ACM Symp. Operating Systems Principles, 1995.
[20] F.J. Torres-Rojas and M. Ahamad, Plausible Clocks: Constant Size Logical Clocks for Distributed Systems Distributed Computing, vol. 12, no. 4, pp. 179-196, 1999.

Index Terms:
Asynchronous distributed computation, causality, message-passing, timestamp, vector clock.
Jean-Michel H?lary, Michel Raynal, Giovanna Melideo, Roberto Baldoni, "Efficient Causality-Tracking Timestamping," IEEE Transactions on Knowledge and Data Engineering, vol. 15, no. 5, pp. 1239-1250, Sept.-Oct. 2003, doi:10.1109/TKDE.2003.1232275
Usage of this product signifies your acceptance of the Terms of Use.