The last decade has brought a paradigm shift in computing systems from single processor devices whose performance plateaued to distributed computing systems. In distributed systems, nodes execute concurrently with limited information about what the other nodes are executing at the moment. Thus, a fundamental problem in distributed systems is to coordinate the execution of these independent nodes effectively to achieve performance while preserving correctness. Unfortunately, distributed coordination is a notoriously tricky problem. Since the nodes do not have access to a shared state and a common clock, they need to communicate and synchronize state frequently in order to coordinate on the order of events.
However, excessive communication hinders the performance/scalability of the distributed system. Due to this inherent trade-off, distributed systems designers need to walk a tight rope. A key component of distributed coordination is the enforcement of consistent views at all nodes for the ordering of significant events. To this end, events are "timestamped" with logical counters or increasingly lately with tightly-synchronized physical time.
To explain the concepts of counters, timestamps, causality, and happened-before, we first look at a brief history of time in distributed systems. Click on the
Download button to find out more about The Advent of Tightly Synchronized Clocks in Distributed Systems.
Comments