Linear Time Byzantine Self-Stabilizing Clock Synchronization
Awareness of the need for robustness in distributed systems increases as distributed systems become an integral part of day-to-day systems. Tolerating Byzantine faults and possessing self-stabilizing features are sensible and important requirements of distributed systems in general, and of a fundamental task such as clock synchronization in particular. There are efficient solutions for Byzantine non-stabilizing clock synchronization as well as for non-Byzantine self-stabilizing clock synchronization. In contrast, current Byzantine self-stabilizing clock synchronization algorithms have exponential convergence time and are thus impractical. We present a linear time Byzantine self-stabilizing clock synchronization algorithm, which thus makes this task feasible. Our deterministic clock synchronization algorithm is based on the observation that all clock synchronization algorithms require events for re-synchronizing the clock values. These events usually need to happen synchronously at the different nodes. In these solutions this is fulfilled or aided by having the clocks initially close to each other and thus the actual clock values can be used for synchronizing the events. This implies that clock values cannot differ arbitrarily, which necessarily renders these solutions to be non-stabilizing. Our scheme suggests using a tight pulse synchronization that is uncorrelated to the actual clock values. The synchronized pulses are used as the events for re-synchronizing the clock values.
Unable to display preview. Download preview PDF.
- 1.Anceaume, E., Puaut, I.: Performance Evaluation of Clock Synchronization Algorithms, Technical report 3526,INRIA (1998)Google Scholar
- 3.Awerbuch, B., Kutten, S., Mansour, Y., Patt-Shamir, B., Varghese, G.: “Time Optimal Self-Stabilizing Synchronization. In: Proceedings of the 25th Symp. on Theory of Computing (1993)Google Scholar
- 4.Brzeziǹski, J., Szychowiak, M.: Self-Stabilization in Distributed Systems - a Short Survey. In: Foundations of Computing and Decision Sciences, vol. 25(1) (2000)Google Scholar
- 5.Daliot, A., Dolev, D., Parnas, H.: Self-Stabilizing Pulse Synchronization Inspired by Biological Pacemaker Networks. In: Proc. Of the Sixth Symposium on Self-Stabilizing Systems, pp. 32–48 (2003)Google Scholar
- 6.Daliot, A., Dolev, D., Parnas, H.: Linear Time Byzantine Self-Stabilizing Clock Synchronization, Technical Report TR2003-89, Schools of Engineering and Computer Science, The Hebrew University of Jerusalem (December 2003)Google Scholar
- 8.Dolev, D., Strong, H.R.: Polynomial Algorithms for Multiple Processor Agreement. In: Proceedings, the 14th ACM SIGACT Symposium on Theory of Computing (STOC 1982), May 1982, pp. 401–407 (1982)Google Scholar
- 12.Dolev, S., Welch, J.L.: Self-Stabilizing Clock Synchronization in the presence of Byzantine faults. In: Proc. Of the Second Workshop on Self-Stabilizing Systems, pp. 9.1–9.12 (1995)Google Scholar
- 16.Liskov, B.: Practical Use of Synchronized Clocks in Distributed Systems. In: Proceedings of 10th ACM Symposium on the Principles of Distributed Computing, pp. 1–9 (1991)Google Scholar
- 17.Patt-Shamir, B.: A Theory of Clock Synchronization, Doctoral thesis, MIT (October 1994)Google Scholar
- 19.Schneider, F.: Understanding Protocols for Byzantine Clock Synchronization, Technical Report 87-859, Dept. of Computer Science, Cornell University (August 1987)Google Scholar
- 20.Toueg, S., Perry, K.J., Srikanth, T.K.: Fast Distributed Agreement. In: Proceedings, Principles of Distributed Computing, pp. 87–101 (1985)Google Scholar