IP Library Granted Patent US 11,953,938
Granted Patent B1
US 11,953,938 · App. 17/740,688 · Granted Apr 9, 2024

Generating globally coherent timestamps

Inventors: Peter Hochschild (New York, NY); Alexander Lloyd (New York, NY); Wilson Cheng-Yi Hsieh (Syosset, NY); Robert Edman Felderman (Portola Valley, CA); Michael James Boyer Epstein (Brooklyn, NY)
Assignee: Google LLC
G06F1/12G01S19/01H04J3/0661H04J3/0667H04L7/0008H04L7/0012H04L7/0016H04L43/106H04L67/10G06F11/1675
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 11,953,938
App. No.
17/740,688
Granted
Apr 9, 2024
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 (39)

1. A method for synchronizing a host machine, comprising:

receiving an initial local timestamp;

receiving response timestamps transmitted from a first group of time masters and a second group of time masters, the second group of time masters configured differently than the first group of time masters with respect to connection to a reliable source of time, each response timestamp associated with a current local timestamp;

calculating, using a processor, time offset intervals for the first group of time masters based on the initial local timestamp and the response timestamps of the first group of time masters;

calculating, using the processor, time offset intervals for the second group of time masters based on the initial local timestamp and the response timestamps of the second group of time masters;

determining, using the processor, an agreement based smallest time offset interval consistent among both groups of time masters; and

adjusting, using the processor, a local clock on the host machine based on the agreement based smallest time offset interval consistent among both groups of time masters.

2. The method of claim 1 , further comprising sending time queries to the first group of time masters and the second group of time masters to receive the response timestamps.

3. The method of claim 1 , wherein the first group of time masters operate at Stratum 1 and the second group of time masters operate at Stratum 2.

4. The method of claim 3 , wherein a Stratum 1 time master is directly linked to the reliable source of time and a Stratum 2 time master is connected to one or more Stratum 1 time masters.

5. The method of claim 1 , wherein a width of each time offset interval represents a transmission delay associated with a time request to and from a time master.

6. The method of claim 1 , wherein a width of each time offset interval represents a level of uncertainty related to a time master.

7. A system, comprising:

a memory;

a local clock on a host machine;

a receiver module to receive response timestamps from a first group of time masters and a second group of time masters, the second group of time masters configured differently than the first group of time masters with respect to connection to a reliable source of time, each response timestamp associated with a current local timestamp; and

a processor programmed to:

receive an initial local timestamp based on the local clock;

register in memory response timestamps received by the receiver module;

calculate time offset intervals for the first group of time masters based on the initial local timestamp and the response timestamps of the first group of time masters;

calculate time offset intervals for the second group of time masters based on the initial local timestamp and the response timestamps of the second group of time masters;

determine an agreement based smallest time offset interval consistent among both groups of time masters; and

adjust the local clock based on the agreement based smallest time offset interval consistent among both groups of time masters.

8. The system of claim 7 , further comprising sending time queries to the first group of time masters and the second group of time masters to receive the response timestamps.

9. The system of claim 7 , wherein the first group of time masters operate at Stratum 1 and the second group of time masters operate at Stratum 2.

10. The system of claim 9 , wherein a Stratum 1 time master is directly linked to the reliable source of time and a Stratum 2 time master is connected to one or more Stratum 1 time masters.

11. The system of claim 7 , wherein a width of each time offset interval represents a transmission delay associated with a time request to and from a time master.

12. The system of claim 7 , wherein a width of each time offset interval represents a level of uncertainty related to a time master.

13. A non-transitory computer-readable storage medium comprising instructions that, when executed by a computer processor, cause the processor to:

receive an initial local timestamp;

receive response timestamps transmitted from a first group of time masters and a second group of time masters, the second group of time masters configured differently than the first group of time masters with respect to connection to a reliable source of time, each response timestamp associated with a current local timestamp;

calculate time offset intervals for the first group of time masters based on the initial local timestamp and the response timestamps of the first group of time masters;

calculate time offset intervals for the second group of time masters based on the initial local timestamp and the response timestamps of the second group of time masters;

determine an agreement based smallest time offset interval consistent among both groups of time masters; and

validate adjust a local clock on a host machine based on the agreement based smallest time offset interval consistent among both groups of time masters.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the processor is further programmed to send time queries to the first group of time masters and the second group of time masters to receive the response timestamps.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the first group of time masters operate at Stratum 1 and the second group of time masters operate at Stratum 2.

16. The non-transitory computer-readable storage medium of claim 15 , wherein a Stratum 1 time master is directly linked to the reliable source of time and a Stratum 2 time master is connected to one or more Stratum 1 time masters.

17. The non-transitory computer-readable storage medium of claim 13 , wherein a width of each time offset interval represents a transmission delay associated with a time request to and from a time master.

Assignments (2)
CHANGE OF NAME Recorded May 11, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 059953/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2022
From: HOCHSCHILD, PETER; LLOYD, ALEXANDER; HSIEH, WILSON CHENG-YI; FELDERMAN, ROBERT EDMAN; EPSTEIN, MICHAEL JAMES BOYER
To: GOOGLE INC.
Reel/Frame 059882/0931 →
Continuity (5)
Continuation 16992673 · Aug 13, 2020
Continuation 15877845 · Jan 23, 2018
Division 14925278 · Oct 28, 2015
Continuation 14567294 · Dec 11, 2014
Continuation 13475143 · May 18, 2012
Cited By (2)
US 12,386,384 US 12,455,624