A Taxonomy of Clock Synchronization Algorithms

Clock synchronization algorithms ensure that physically dispersed processors have a common knowledge of time. This paper proposes a taxonomy adapted to all published software fault-tolerant clock synchronization algorithms: deterministic and prob-abilistic, internal and external, and resilient from crash to Byzantine failures. We classify clock synchronization algorithms according to their internal structure and to three othogo-nal and independent basic building blocks. Our taxonomy will help the designer in choosing the most appropriate structure of algorithm and the best building blocks suited to his/her hardware architecture, failure model, quality of synchronized clocks and message cost induced. Moreover, our classiication uses a uniform notation that allows to compare existing clock synchronization algorithms with respect to their fault model, the building blocks they use, the properties they ensure and their cost in terms of message exchanges. R esum e : Les algorithmes de synchronisation d'horloges oorent une notion commune du temps a des processeurs n'ayant pas acc es a une horloge globale partag ee. Ce rapport propose une classiication adapt ee a tous les algorithmes de synchronisation d'horloges evoluant dans un environnement sujet aux d efaillances, qu'ils soient d eterministes ou probabilistes, et qu'ils assurent une synchronisation interne ou externe. Les algorithmes de synchronisa-tion d'horloges etudi es sont class es selon leur structure interne et selon trois blocs de base ind ependants. Cette classiication est conn cue pour guider le concepteur d'un algorithme de synchronisation d'horloges dans le choix de l'algorithme le mieux adapt e a son architecture mat erielle, le mod ele de d efaillances vis e, la qualit e de la synchronisation obtenue ainsi que le co^ ut r esultant en terme de nombre de messages echang es. Par ailleurs, la classiication propos ee utilise une notation uniforme, qui permet de comparer les algorithmes existants selon le mod ele de fautes qu'il supportent, les blocs de base qu'ils utilisent, les propri et es qu'ils assurent et le co^ ut associ e.

[1]  Flaviu Cristian,et al.  Lower Bounds for Function Based Clock Synchronization , 1995 .

[2]  Riccardo Gusella,et al.  The Accuracy of the Clock Synchronization Achieved by TEMPO in Berkeley UNIX 4.3BSD , 1987, IEEE Trans. Software Eng..

[3]  Parameswaran Ramanathan,et al.  Clock Synchronization of a Large Multiprocessor System in the Presence of Malicious Faults , 1987, IEEE Transactions on Computers.

[4]  Danny Dolev,et al.  Dynamic fault-tolerant clock synchronization , 1995, JACM.

[5]  Sam Toueg,et al.  Optimal clock synchronization , 1985, PODC '85.

[6]  K. Arvind,et al.  Probabilistic Clock Synchronization in Distributed Systems , 1994, IEEE Trans. Parallel Distributed Syst..

[7]  Nancy A. Lynch,et al.  A new fault-tolerant algorithm for clock synchronization , 1984, PODC '84.

[8]  Fred B. Schneider,et al.  Inexact agreement: accuracy, precision, and graceful degradation , 1985, PODC '85.

[9]  Riccardo Gusella,et al.  An Election Algorithm for a Distributed Clock Synchronization Program , 1986, ICDCS.

[10]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[11]  Flaviu Cristian,et al.  An optimal internal clock synchronization algorithm , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[12]  Nancy A. Lynch,et al.  An Overview of Clock Synchronization , 1986, Fault-Tolerant Distributed Computing.

[13]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[14]  Parameswaran Ramanathan,et al.  Fault-tolerant clock synchronization in distributed systems , 1990, Computer.

[15]  Danny Dolev,et al.  Fault-tolerant clock synchronization , 1984, PODC '84.

[16]  Keith Marzullo,et al.  Maintaining the time in a distributed system , 1985, OPSR.

[17]  Nancy A. Lynch,et al.  An Upper and Lower Bound for Clock Synchronization , 1984, Inf. Control..

[18]  Fred B. Schneider,et al.  A Paradigm for Reliable Clock Synchronization , 1986 .

[19]  Douglas M. Blough,et al.  A New and Improved Algorithm for Fault-Tolerant Clock Synchronization , 1995, J. Parallel Distributed Comput..

[20]  Kang G. Shin,et al.  Fault-Tolerant Clock Synchronization in Large Multicomputer Systems , 1994, IEEE Trans. Parallel Distributed Syst..

[21]  Flaviu Cristian,et al.  Clock Synchronization in the Presence of Omission and Performance Faults, and Processor Joins , 1986 .

[22]  P. M. Melliar-Smith,et al.  Synchronizing clocks in the presence of faults , 1985, JACM.