DCE Distributed Time ServiceA distributed computing system has many advantages but also brings with it new problems. One of them is keeping the clocks on different nodes synchronized. In a single system, there is one clock that provides the time of day to all applications. Computer hardware clocks are not completely accurate, but there is always one consistent idea of what time it is for all processes running on the system. In a distributed system, however, each node has its own clock. Even if it were possible to set all of the clocks in the distributed system to one consistent time at some point, those clocks would drift away from that time at different rates. As a result, the different nodes of a distributed system have different ideas of what time it is. This is a problem, for example, for distributed applications that care about the ordering of events. It is difficult to determine whether Event A on Node X occurred before Event B on Node Y because different nodes have different notions of the current time. The DCE Distributed Time Service (DTS) addresses this problem in two ways: 1. DTS provides a way to periodically synchronize the clocks on the different hosts in a distributed system. 2. DTS also provides a way of keeping that synchronized notion of time reasonably close to the correct time. (In DTS, correct time is considered to be Coordinated Universal Time (UTC), an international standard.) These services together allow cooperating nodes to have the same notion of what time it is, and to also have that time be meaningful in the rest of the world. Distributed time is inherently more complex than time originating from a single source - since clocks cannot be continuously synchronizing, there is always some discrepancy in their ideas of the current time as they drift between synchronizations. In addition, indeterminacy is introduced in the communications necessary for synchronization - clocks synchronize by sending messages about the time back and forth, but that message passing itself takes a certain (unpredictable) amount of time. So in addition to being able to express the time of day, a distributed notion of time must also include an inaccuracy factor - how close the timestamp is to the real time. As a result, keeping time in a distributed environment requires not only new synchronization mechanisms, but also a new form of expression of time - one that includes the inaccuracy of the given time. In DTS, distributed time is therefore expressed as a range, or interval, rather than as a single point. More: Interaction with the Network Time Protocol
|