IP Library Granted Patent US 9,203,600
Granted Patent B1
US 9,203,600 · App. 14/567,294 · Granted Dec 1, 2015

Generating globally coherent timestamps

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,203,600
App. No.
14/567,294
Granted
Dec 1, 2015
Kind
B1
Abstract

The present technology proposes techniques for generating globally coherent timestamps. This technology may allow distributed systems to causally order transactions without incurring various types of communication delays inherent in explicit synchronization. By globally deploying a number of time masters that are based on various types of time references, the time masters may serve as primary time references. Through an interactive interface, the techniques may track, calculate and record data relative to each time master thus providing the distributed systems with causal timestamps.

Claims (40)

1. A method, comprising:

retrieving, using one or more processors, a first local timestamp from a local clock device;

determining, using the one or more processors, a true time interval related to a plurality of time references, the true time interval comprising sets of time offset intervals that represent differences between reference timestamps associated with the plurality of time references and the first local timestamp, wherein the sets of time offset intervals compensate for network delays associated with a given time reference from the plurality of time references;

identifying, using the one or more processors, a given one of the time offset intervals based on a number of occurrences of the given time offset interval in the true time interval; and

adjusting, using the one or more processors, a second local timestamp retrieved from the local clock device according to the identified time offset interval.

2. The method of claim 1 , wherein the identified time offset interval has a highest occurrence amongst the sets of time offset intervals in the true time interval.

3. The method of claim 1 , further comprising:

sending a time query to the plurality of time references; and

in response to the time query, receiving reference timestamps from at least two time references of the plurality of time references.

4. The method of claim 3 , wherein the network delays comprise an amount of time associated with receiving the reference timestamps from the at least two time references.

5. The method of claim 1 , wherein the plurality of time references includes time signals from a global navigation satellite system.

6. The method of claim 5 , further comprising adjusting the time signals received from the global navigation satellite system based on a leap second.

7. The method of claim 1 , wherein the plurality time references includes time signal from an oscillator.

8. The method of claim 1 , further comprising determining a timing error in the local clock device by using the identified time offset interval.

9. The method of claim 1 , wherein adjusting the second local timestamp comprises waiting for a period of time to pass.

10. A non-transitory computer-readable storage medium storing instructions thereon, the instructions when executed by one or more processors, cause the one or more processors to:

retrieve a first local timestamp from a local clock device;

determine a true time interval related to a plurality of time references, the true time interval comprising sets of time offset intervals that represent differences between reference timestamps associated with the plurality of time references and the first local timestamp, wherein the sets of time offset intervals compensate for network delays associated with a given time reference from the plurality of time references;

identify a given one of the time offset intervals based on a number of occurrences of the given time offset interval in the true time interval; and

adjust a second local timestamp retrieved from the local clock device according to the identified time offset interval.

11. The computer-readable storage medium of claim 10 , wherein the identified time offset interval has a highest occurrence amongst the sets of time offset intervals in the true time interval.

12. A system, comprising:

a memory configured to store sets of time offset intervals;

a local clock device configured to generate a local timestamp;

a receiver module to receive reference timestamps from a plurality of time references; and

one or more processors coupled to the memory, the one or more processors being programmed to:

retrieve a first local timestamp from a local clock device;

determine a true time interval related to a plurality of time references, the true time interval comprising sets of time offset intervals stored in memory that represent differences between reference timestamps received from the receiver module and the first local timestamp, wherein the sets of time offset intervals compensate for network delays associated with a given time reference from the plurality of time references;

identify a given one of the time offset intervals based on a number of occurrences of the given time offset interval in the true time interval; and

adjust a second local timestamp retrieved from the local clock device according to the identified time offset interval.

13. The system of claim 12 , wherein the identified time offset interval has a highest occurrence amongst the sets of time offset intervals in the true time interval.

14. The system of claim 12 , wherein the one or more processors are configured to:

send a time query to the plurality of time references; and

in response to the time query, receiving reference timestamps from at least two time references of the plurality of time references.

15. The system of claim 14 , wherein the network delays comprise an amount of time associated with receiving the reference timestamps from the at least two time references of the plurality of time references.

16. The system of claim 12 , wherein the plurality of time references includes time signals from a global navigation satellite system.

17. The system of claim 16 , wherein the one or more processors are configured to adjust the time signals received from the global navigation satellite system based on a leap second.

18. The system of claim 12 , wherein the plurality time references includes time signals from an oscillator.

19. The system of claim 12 , wherein the one or more processors are configured to determine a timing error in the local clock device by using the identified time offset interval.

20. The system of claim 12 , wherein adjusting the second local timestamp comprises waiting for a period of time to pass.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2015
From: HOCHSCHILD, PETER; LLOYD, ALEXANDER; HSIEH, WILSON CHENG-YI; FELDERMAN, ROBERT EDMAN; EPSTEIN, MICHAEL JAMES BOYER
To: GOOGLE INC.
Reel/Frame 035025/0751 →