US 11,758,029 B2
Ensuring properly ordered events in a distributed computing environment
David Alves, Austin, TX (US); and Todd Lipcon, San Francisco, CA (US)
Assigned to Cloudera, Inc., Santa Clara, CA (US)
Filed by Cloudera, Inc., Santa Clara, CA (US)
Filed on Jun. 9, 2022, as Appl. No. 17/836,909.
Application 17/836,909 is a continuation of application No. 17/064,507, filed on Oct. 6, 2020, granted, now 11,388,271.
Application 17/064,507 is a continuation of application No. 16/895,947, filed on Jun. 8, 2020, granted, now 11,146,668, issued on Dec. 21, 2021.
Application 16/895,947 is a continuation of application No. 16/198,677, filed on Nov. 21, 2018, granted, now 10,681,190, issued on Jun. 9, 2020.
Application 16/198,677 is a continuation of application No. 14/462,445, filed on Aug. 18, 2014, granted, now 10,171,635, issued on Jan. 1, 2019.
Claims priority of provisional application 61/911,720, filed on Dec. 4, 2013.
Prior Publication US 2022/0382323 A1, Dec. 1, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 69/28 (2022.01); G06F 1/14 (2006.01); G06F 11/07 (2006.01); G06Q 10/00 (2023.01); G06Q 50/26 (2012.01); H04L 67/10 (2022.01)
CPC H04L 69/28 (2013.01) [G06F 1/14 (2013.01); G06F 11/0721 (2013.01); G06F 11/0772 (2013.01); G06Q 10/00 (2013.01); G06Q 50/26 (2013.01); H04L 67/10 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for providing global clock consistency across a distributed computing system, the method comprising:
receiving, by a user device, a request whose outcome depends on an order of a first and second event, wherein the first event was processed at a first server of the distributed computing system and the second event was processed at a second server of the distributed computing system;
in response to requesting information regarding the first event, receiving, by the user device from the first server, a hybrid timestamp of the first event, the hybrid timestamp comprising a first physical component and a first logical component, wherein the first physical component represents a physical time at which the first event occurred as observed by a physical clock, and wherein the first logical component represents a logical sequence number indicative of an ordering of the first event;
in response to requesting information regarding the second event, receiving, by the user device from the second server, a timestamp value for the second event that is determined by the second server based on the second server also receiving the hybrid timestamp of the first event;
determining, by the user device, an order of the first and second event based on the hybrid timestamp and the timestamp value; and
processing, by the user device, the request based on the determined order of the first and second event.