I am reading Lamport's paper titled Time, clocks, and the ordering of events in a distributed system

I understand what's in there more or less, but I am confused whether Lamport timestamps on their own are useful in practice since just by looking at the logical timestamps, we can't say anything about which happened before what. It seems to me that Lamport timestamps on their own aren't useful, and we need to extend them to something like vector clocks to be useful in practice. Am I missing any details?


As Wikipedia explains:

The algorithm of Lamport timestamps is a simple algorithm used to determine the order of events in a distributed computer system. As different nodes or processes will typically not be perfectly synchronized, this algorithm is used to provide a partial ordering of events with minimal overhead, and conceptually provide a starting point for the more advanced vector clock method.

Conceptually, this logical clock can be thought of as a clock that only has meaning in relation to messages moving between processes. When a process receives a message, it resynchronizes its logical clock with that sender. The above mentioned vector clock is a generalization of the idea into the context of an arbitrary number of parallel, independent processes.

In distributed systems, it is often necessary for (almost) all the nodes to reach agreement on things such as the order of events. That agreed upon order need not be the God's Eye knowledge of the order of events. There are various other distributed agreements needed.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.