Jump to content

Logical clock

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by KasparBot (talk | contribs) at 04:59, 17 May 2015 (embed authority control with wikidata information). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A logical clock is a mechanism for capturing chronological and causal relationships in a distributed system. Distributed system may have no physically synchronous global clock, and logical clock allow to get global ordering on events from different processes in such systems. The first implementation, the Lamport timestamps, was proposed by Leslie Lamport in 1978 (Turing Award in 2013).

In logical clock systems each process have two data structures with logical local time and logical global time. Logical local time is used by the process to mark its own events, and logical global time is the local information about global time. A special protocol is used to update logical local time after each local event, and logical global time when processes exchange data.[1]

Logical clocks are useful in computation analysis, distributed algorithm design, individual event tracking, exploring computational progress.

Logical clock algorithms of note are as follows:

  • Lamport timestamps, which are monotonically increasing software counters.
  • Vector clocks, that allow for partial ordering of events in a distributed system.
  • Version vectors, order replicas, according to updates, in an optimistic replicated system.
  • Matrix clocks, an extension of vector clocks that also contains information about other processes' views of the system.

References

  1. ^ Chapter 3: Logical Time // Ajay Kshemkalyani and Mukesh Singhal, Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2008