Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Logical clock
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Mechanism for capturing chronological and causal relationships}} A '''logical clock''' is a mechanism for capturing chronological and causal relationships in a [[distributed system]]. Often, distributed systems may have no physically synchronous global clock. In many applications (such as distributed [[GNU make]]), if two processes never interact, the lack of synchronization is unobservable and in these applications it is enough for the processes to agree on the event ordering (i.e., logical clock) rather than the wall-clock time.<ref>{{Cite web|title=Distributed Systems 3rd edition (2017)|url=https://www.distributed-systems.net/index.php/books/ds3/|access-date=2021-03-20|website=DISTRIBUTED-SYSTEMS.NET|language=en-US}}</ref> The first logical clock implementation, the [[Lamport timestamps]], was proposed by [[Leslie Lamport]] in 1978 ([[Turing Award]] in 2013). ==Local vs global time== In logical clock systems each process has two data structures: ''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.<ref name=ch3>[http://www.cs.uic.edu/~ajayk/Chapter3.pdf Chapter 3: Logical Time] // Ajay Kshemkalyani and Mukesh Singhal, Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2008</ref> ==Applications== Logical clocks are useful in computation analysis, distributed algorithm design, individual event tracking, and exploring computational progress. ==Algorithms== Some noteworthy logical clock algorithms are: * [[Lamport timestamp]]s, which are monotonically increasing software counters. * [[Vector clock]]s, that allow for partial ordering of events in a distributed system. * [[Version vector]]s, order replicas, according to updates, in an [[Optimistic replication|optimistic replicated system]]. * [[Matrix clock]]s, an extension of vector clocks that also contains information about other processes' views of the system. ==References== {{Reflist}} ==External links== * [https://web.archive.org/web/20150122075241/http://www.dis.uniroma1.it/~baldoni/Logical_Time.pdf Distributed System Logical Time] // Roberto Baldoni, Silvia Bonomi. MIDLAB, Sapienza University of Rome * [http://www.cs.uic.edu/~ajayk/Chapter3.pdf Chapter 3: Logical Time] // Ajay Kshemkalyani and Mukesh Singhal, Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2008 * [https://www.cs.rutgers.edu/~pxk/417/notes/content/06-logical-clocks-slides.pdf Distributed Systems 06. Logical Clocks] // Paul Krzyzanowski, Rutgers University, Fall 2014 {{Authority control}} {{DEFAULTSORT:Logical Clock}} [[Category:Logical clock algorithms|*]] [[Category:Causality]] [[Category:Distributed algorithms]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Cite web
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)