Synthesis: Time, Clocks, and the Ordering of Events in a Distributed System
Let’s assume you have a distributed system consisting of
n nodes. These nodes have perfectly synchronized clocks. If node 1 sends a message to node 2 and attaches a timestamp to the message, node 2 can order this event with respect to local events. In other words, node 2 knows whether node 1 sent the message either before or after node 2 received, say, a message from node 3. Since these messages may be arbitrarily delayed, they may be received in a different order than they were sent. With synchronized timestamps, node 2 can resolve this.
In fact, with synchronized timestamps and a synchronous network (every message is delivered within a known, bounded amount of time and differences in processor speeds are known and bounded), one can achieve consensus.
Unfortunately, identical clocks will drift depending on things like, say, temperature. Protocols exist for the synchronization of
Continue reading →