Synchronizing clocks in an asynchronous distributed system
First Claim
1. At an observing computer system in an asynchronous distributed system including a plurality of computer system, the observing computer system including a processor and system memory, the asynchronous distributed system having a clock quantum constraint, Q, and a drift rate constraint, D, the clock quantum constraint indicating the maximum difference between clock quantizations among the computer systems of the asynchronous distributed system, the drift rate constraint indicating the maximum clock drift within a specified period of time for each computer system of the asynchronous distributed system, a method for determining the variance between what the observing computer system purports the time at the observed computer system to be and the actual time at the observed computer system, the method comprising:
- an act of participating in one or more message exchanges with the observed computer system, the message exchanges including;
an act of recording the send time, X(t1), of the clock, X(t), at the observing computer system when a message is sent;
an act of sending a message to the observed computer system, the message including the recorded send time X(t1);
an act of subsequently receiving a correlatable message responsive to the message from the observed computer system, the correlatable message containing a time Y(t2) from the clock, Y(t), of the observed computer system;
an act of recording the received time, X(t3), of the clock, X(t) at the observing computer system when the correlatable message is received; and
an act of recording the time, Y(t2), from the observed computer system;
an act of calculating a lower bound for the time at the observed computer system relative to the time of the observing computer system based on the equation;
Y(t)>
=X(t)−
(X(t3)−
Y(t2)+2Q)−
2D(X(t)−
X(t1))/2+2Q);
an act of calculating an upper bound for the time at the observed computer system relative to the time of the observing computer system based on the equation;
Y(t)<
=X(t)+(Y(t2)−
X(t1)+2Q)+2D(X(t)−
(X(t3)+X(t1))/2+2Q);
an act of calculating the difference between the upper bound and the lower bound; and
an act of the processor calculating the maximum variance between what the observing computer system purports the time at the observed computer system to be and the actual time at the observed computer system by dividing the calculated difference by an averaging factor.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for synchronizing clocks in an asynchronous distributed system. Embodiments of the invention facilitate creation of a trustable and practical common time (time of day) reference across a set of peer nodes (observers), such as, for example, members within a common asynchronous (distributed) system. A class of pseudo synchronous system can be created via tracking and accumulating worst case relativistic time skews amongst pairs of nodes (observers), without reference to a common master. As such, cooperating nodes can essentially guarantee a lower bound on the time-of-day that one node will observe, given an observation on another node. Accordingly, embodiments of the invention can be applied to provide a consistent (essentially safe) view of the worst case (i.e., greatest variance in) current time across such an asynchronous system—without a common external time-of-day clock entity being used.
-
Citations
22 Claims
-
1. At an observing computer system in an asynchronous distributed system including a plurality of computer system, the observing computer system including a processor and system memory, the asynchronous distributed system having a clock quantum constraint, Q, and a drift rate constraint, D, the clock quantum constraint indicating the maximum difference between clock quantizations among the computer systems of the asynchronous distributed system, the drift rate constraint indicating the maximum clock drift within a specified period of time for each computer system of the asynchronous distributed system, a method for determining the variance between what the observing computer system purports the time at the observed computer system to be and the actual time at the observed computer system, the method comprising:
-
an act of participating in one or more message exchanges with the observed computer system, the message exchanges including; an act of recording the send time, X(t1), of the clock, X(t), at the observing computer system when a message is sent; an act of sending a message to the observed computer system, the message including the recorded send time X(t1); an act of subsequently receiving a correlatable message responsive to the message from the observed computer system, the correlatable message containing a time Y(t2) from the clock, Y(t), of the observed computer system; an act of recording the received time, X(t3), of the clock, X(t) at the observing computer system when the correlatable message is received; and an act of recording the time, Y(t2), from the observed computer system; an act of calculating a lower bound for the time at the observed computer system relative to the time of the observing computer system based on the equation;
Y(t)>
=X(t)−
(X(t3)−
Y(t2)+2Q)−
2D(X(t)−
X(t1))/2+2Q);an act of calculating an upper bound for the time at the observed computer system relative to the time of the observing computer system based on the equation;
Y(t)<
=X(t)+(Y(t2)−
X(t1)+2Q)+2D(X(t)−
(X(t3)+X(t1))/2+2Q);an act of calculating the difference between the upper bound and the lower bound; and an act of the processor calculating the maximum variance between what the observing computer system purports the time at the observed computer system to be and the actual time at the observed computer system by dividing the calculated difference by an averaging factor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. At a computer system, the computer system including a processor and system memory, a method for calculating the maximum variance between clocks at different computer systems of an asynchronous distributed system that includes a plurality of computer systems, the method comprising:
-
an act of accessing a clock quantum constraint, Q, the clock quantum constraint indicating the maximum difference between clock quantizations among the computer systems of the asynchronous distributed system; an act of accessing a drift rate constraint, D, the drift rate constraint indicating the maximum clock drift within a specified period of time for each computer system of the asynchronous distributed system; an act of accessing a maximum round trip constraint, the maximum round trip constraint indicating the maximum amount of time for a request/reply message exchange to occur between any two computer systems of the asynchronous distributed system; and an act of the processor calculating the maximum variance, Vmax, between clocks at different computer systems of the asynchronous system based on the clock quantum constraint, the drift rate constraint, and the maximum round trip constraint according to the equation;
Vmax =((t(2)−
t(1))/2+Q+(2D*(T−
Avg(t(1), t(2))+Q)),where t(1) is the send time of the request and t(2) is the receive time of the response at a first computer system in the asynchronous distributed system. - View Dependent Claims (10)
-
-
11. At an observing computer system, the observing computer system including a processor and system memory, a method for indicating the time an event occurred at an observed computer system, the method comprising:
-
an act of participating in one or more message exchanges with the observed computer system, each message exchange including; an act of recording the time, X(t1), of the clock, X(t), at the observing computer system when a request message is sent; an act of sending one or more request messages to the observed computer system, each request message including a corresponding recorded send time; an act of subsequently receiving one or more reply messages responsive to the one or more request messages from the observed computer system, each reply message containing a time, Y(t2), from the clock, Y(t), of the observed computer system; and an act of recording the time, X(t3), of the clock at the observing computer system when a reply message is received; an act of calculating time bounds for the clock, Y(t), of the observed computer system relative to the time, X(t), of the observing computer system based on the one or more message exchanges, the time bounds configured to be applied to the time at the observing computer system to purport a specified time range at the observed computer system subsequent to the one or more message exchanges, the time bounds including; a lower time bound representing the bottom of the calculated time bounds, the lower time bound calculated using the equation;
Y(t)>
=X(t)−
(X(t3)−
Y(t2)+2Q)−
2D(X(t)−
X(t1))/2+2Q); andan upper time bound representing the top of the calculated time bounds, the upper time bound calculated using the equation;
Y(t)<
=X(t)+(Y(t2)−
X(t1)+2Q)+2D(X(t)−
(X(t3)+X(t1))/2+2Q);an act of the processor receiving an indication, the indication selected from among;
a) an indication of the occurrence of a past event at the observed computer system and b) an indication of when an event is to occur at the observed computer system, subsequent to the one or more message exchanges;an act of the processor calculating a time range for the observed computer system, the time range indicative of a) when the event occurred or b) when the event is to occur at the observed computer system, the time range calculated based on a time at the observing computer system when the indication was received and based on the lower bound and the upper bound of the calculated time bound; and an act of sending an event message including the indication and the calculated time range to one or more other computer systems. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification