System and method for synchronizing time across a computer cluster
First Claim
1. A method for synchronizing time across a computer cluster, comprising:
- sending initial time data from a master node of the computer cluster to a slave node of the computer cluster;
generating second time data on the slave node;
sending the second time data to the master node;
generating third time data on the master node;
determining on the master node a time adjustment data based on the initial time data, the second time data, and the third time data; and
sending the time adjustment data from the master node to the slave node.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for time synchronization in a computer cluster is provided. For the system of the present invention a master node sends a SYNC message including a first time stamp to a slave node. The slave node adds a second time stamp and returns the SYNC message to the master node. The master node then adds a third time stamp to the SYNC message. Using the three time stamps, the master node determines if the time clock within the slave node leads or follows the time clock in the master node. The calculation does not depend on the assumption that transmission delays to the slave node are the same as the transmission delays from the node. If the time clocks do not match, the master node sends an INFO message to the slave node informing the slave node of the correct time for clocks within the computer cluster.
-
Citations
17 Claims
-
1. A method for synchronizing time across a computer cluster, comprising:
-
sending initial time data from a master node of the computer cluster to a slave node of the computer cluster;
generating second time data on the slave node;
sending the second time data to the master node;
generating third time data on the master node;
determining on the master node a time adjustment data based on the initial time data, the second time data, and the third time data; and
sending the time adjustment data from the master node to the slave node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
gradually adjusting a clock of the slave node responsive to the time adjustment data.
-
-
3. The method of claim 2, wherein:
-
the time adjustment data comprises a beginning time value for a time adjustment period; and
the step of gradually adjusting the clock of the slave node begins at the beginning time value.
-
-
4. The method of claim 3, wherein the step of gradually adjusting the clock of the slave node further comprises:
making a plurality of time changes to the clock during the time adjustment period.
-
5. The method of claim 1, wherein the time adjustment data comprises a time change value corresponding to a time change scheduled for the computer cluster, the method further comprising:
setting a clock of the slave node based on the time change value.
-
6. The method of claim 1, wherein the initial time data and the second time data are sent in a SYNC message.
-
7. The method of claim 1, wherein the time adjustment data is sent in an INFO message.
-
8. The method of claim 1, wherein the step of sending the time adjustment data further comprises:
-
determining an initial time stamp from the initial time data;
determining a second time stamp from the second time data;
responsive to the initial time stamp being greater than the second time stamp;
sending time adjustment data comprising an absolute value of the second time stamp minus the initial time stamp;
responsive to the initial time stamp not being greater than the initial time stamp;
determining a third time stamp from the third time data; and
responsive to the second time stamp being greater than the third time stamp, sending time adjustment data comprising the difference of the third time stamp minus the second time stamp.
-
-
9. The method of claim 8, further comprising:
responsive to the second time stamp not being greater than the third time stamp, sending time adjustment data comprising an indication to the slave node that no synchronizing is necessary.
-
10. A system for synchronizing time across a computer cluster, comprising:
-
a master node, for generating time data, sending time data to a slave node, receiving time data from the slave node, determining time adjustment data, and sending the time adjustment data to the slave node; and
the slave node, coupled to the master node, for generating time data, sending time data to the master node, receiving time data from the master node, and receiving time adjustment data from the master node. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for synchronizing time across a computer cluster, comprising:
-
a master node;
at least one slave node, coupled to the master node;
first sending means for sending initial time data from the master node of the computer cluster to at least one slave node of the computer cluster;
first generating means, coupled to the first sending means, for generating second time data on the slave node;
second sending means, coupled to the first generating means, for sending the second time data to the master node;
second generating means, coupled to the first sending means, for generating third time data on the master node;
determining means, coupled to the second generating means, for determining on the master node a time adjustment data based on the initial time data, the second time data, and the third time data; and
third sending means, coupled to the determining means, for sending the time adjustment data from the master node to the slave node.
-
-
17. A computer program product, for synchronizing clocks on a computer network, comprising:
-
a master node program, for generating time data, sending time data to a slave node program, receiving time data from the slave node program, determining time adjustment data, and sending the time adjustment data to the slave node program;
the slave node program, coupled to the master node program, for generating time data, sending time data to the master node program, receiving time data from the master node program, and receiving time adjustment data from the master node program; and
a computer readable medium storing the master node program and the slave node program.
-
Specification