IP Library Granted Patent US 12,468,667
Granted Patent B1
US 12,468,667 · App. 18/643,449 · Granted Nov 11, 2025

Time reservations for ensuring consistent reads in a distributed database without logging

Inventors: Wilson Cheng-Yi Hsieh (Syosset, NY); Eric Hugh Veach (Bellevue, WA); Michael James Boyer Epstein (Brooklyn, NY); Alexander Lloyd (New York, NY)
Assignee: Google LLC
G06F16/20G06F16/2322G06F16/2343G06F16/27G06F16/273G06F16/951H04L69/04
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 12,468,667
App. No.
18/643,449
Granted
Nov 11, 2025
Kind
B1
Abstract

The subject matter described herein provides techniques to ensure that queries of a distributed database observe a consistent read of the database without locking or logging. In this regard, next-write timestamps uniquely identify a set of write transactions whose updates can be observed by reads. By publishing the next-write timestamps from within an extendable time lease and tracking a “safe timestamp,” the database queries can be executed without logging read operations or blocking future write transactions, and clients issuing the queries at the “safe timestamp” observe a consistent view of the database as it exists on or before that timestamp. Aspects of this disclosure also provide for extensions, done cheaply and without the need for logging, to the range of timestamps at which read transactions can be executed.

Claims (42)

1 . A method, comprising:

determining, using a processor, a duration of a time lease based on a first current-time interval;

sending, using the processor, from a first replica, a request to extend the duration of the time lease to a plurality of replicas in a database at a first time prior to expiration of the time lease;

receiving, using the processor, responses affirming the request from a quorum of the plurality of replicas prior to expiration of the time lease; and

extending, using the processor, the duration of the time lease to be a predetermined period of time later than the first time.

2 . The method of claim 1 , further comprising:

sending, using the processor, from the first replica, an election request to the plurality of replicas; and

receiving, using the processor, responses affirming the election request from the quorum of the plurality of replicas.

3 . The method of claim 2 , wherein the election request is sent at a time corresponding to a current-time interval received from a global time service, the current-time interval comprising a globally consistent representation of current time accounting for a level of uncertainty about a current true time.

4 . The method of claim 2 , wherein each replica of the plurality of replicas maintains a lease vote time at which it affirmed the election request.

5 . The method of claim 2 , wherein sending the election request from the first replica to the plurality of replicas further comprises sending the election request along with a request for new write transactions to be executed.

6 . The method of claim 1 , wherein the time lease begins at an earliest point in the current-time interval and ends a predetermined period of time later than the earliest point.

7 . The method of claim 1 , wherein the first replica serves as a leader for allocating timestamps to incoming transactions during the time lease.

8 . The method of claim 1 , wherein the first replica serves as an organizer of a number of client requests for database writes during the time lease.

9 . The method of claim 1 , wherein the plurality of replicas do not log the extending of the time lease.

10 . The method of claim 1 , further comprising:

determining, using the processor, a next-write timestamp based on the time lease, the next-write timestamp representing a next time at which data can be committed to the database; and

publishing, using the processor, the next-write timestamp for use by one or more of the plurality of replicas in determining whether the one or more replicas can execute a transaction while maintaining a consistent view of the database among the plurality of replicas.

11 . A system comprising:

a database; and

one or more processors in communication with the database, the one or more processors being configured to:

determine a duration of a time lease based on a first current-time interval;

send, from a first replica, a request to extend the duration of the time lease to a plurality of replicas in the database at a first time prior to expiration of the time lease;

receive responses affirming the request from a quorum of the plurality of replicas prior to expiration of the time lease; and

extend the duration of the time lease to be a predetermined period of time later than the first time.

12 . The system of claim 11 , wherein the processors are further configured to:

send, from the first replica, an election request to the plurality of replicas; and

receive responses affirming the election request from the quorum of the plurality of replicas.

13 . The system of claim 12 , wherein the election request is sent at a time corresponding to a current-time interval received from a global time service, the current-time interval comprising a globally consistent representation of current time accounting for a level of uncertainty about a current true time.

14 . The system of claim 12 , wherein each replica of the plurality of replicas maintains a lease vote time at which it affirmed the election request.

15 . The system of claim 12 , wherein sending the election request from the first replica to the plurality of replicas further comprises sending the election request along with a request for new write transactions to be executed.

16 . The system of claim 11 , wherein the time lease begins at an earliest point in the current-time interval and ends a predetermined period of time later than the earliest point.

17 . The system of claim 11 , wherein the first replica serves as a leader for allocating timestamps to incoming transactions during the time lease.

18 . The system of claim 11 , wherein the first replica serves as an organizer of a number of client requests for database writes during the time lease.

19 . The system of claim 11 , wherein the processors are further configured to:

determine a next-write timestamp based on the time lease, the next-write timestamp representing a next time at which data can be committed to the database; and

publish the next-write timestamp for use by one or more of the plurality of replicas in determining whether the one or more replicas can execute a transaction while maintaining a consistent view of the database among the plurality of replicas.

20 . A non-transitory computer readable medium for storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

determine a duration of a time lease based on a first current-time interval;

send, from a first replica, a request to extend the duration of the time lease to a plurality of replicas in a database at a first time prior to expiration of the time lease;

receive responses affirming the request from a quorum of the plurality of replicas prior to expiration of the time lease; and

extend the duration of the time lease to be a predetermined period of time later than the first time.

Assignments (2)
CHANGE OF NAME Recorded Apr 26, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 067244/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2024
From: HSIEH, WILSON CHENG-YI; VEACH, ERIC HUGH; EPSTEIN, MICHAEL JAMES BOYER; LLOYD, ALEXANDER
To: GOOGLE INC.
Reel/Frame 067207/0813 →
Continuity (5)
Continuation 17965212 · Oct 13, 2022
Continuation 16992602 · Aug 13, 2020
Continuation 15631646 · Jun 23, 2017
Division 13661913 · Oct 26, 2012
Provisional Application 61675556 · Jul 25, 2012
References Cited (50)
US 4941082A · Pailthorp et al. · 1990 [cited by applicant]
US 5917998A · Cabrera et al. · 1999 [cited by applicant]
US 5937413A · Hyun et al. · 1999 [cited by applicant]
US 6157957A · Berthaud · 2000 [cited by applicant]
US 6457016B1 · Rohwer et al. · 2002 [cited by applicant]
US 7266698B2 · Matsumoto et al. · 2007 [cited by applicant]
US 7565419B1 · Kwiatkowski et al. · 2009 [cited by applicant]
US 7568080B2 · Prahlad et al. · 2009 [cited by applicant]
US 7761421B2 · Frolund et al. · 2010 [cited by applicant]
US 8468132B1 · O'Neill · 2013 [cited by examiner]
US 8789208B1 · Sundaram · 2014 [cited by examiner]
US 8959299B2 · Ngo · 2015 [cited by examiner]
US 8995191B2 · Hold · 2015 [cited by examiner]
US 9053073B1 · Subramanian · 2015 [cited by examiner]
US 9489434B1 · Rath · 2016 [cited by examiner]
US 11803453B1 · Bunker · 2023 [cited by examiner]
US 12219510B2 · Sandberg · 2025 [cited by examiner]
US 20040148317A1 · Sundararajan et al. · 2004 [cited by applicant]
US 20060041727A1 · Adkins et al. · 2006 [cited by applicant]
US 20080071878A1 · Reuter · 2008 [cited by applicant]
US 20080288577A1 · Clubb et al. · 2008 [cited by applicant]
US 20090182783A1 · Lomet · 2009 [cited by applicant]
US 20100077142A1 · Fienblit et al. · 2010 [cited by applicant]
US 20100242092A1 · Harris et al. · 2010 [cited by applicant]
US 20100260062A1 · Senga et al. · 2010 [cited by applicant]
US 20100332513A1 · Azar et al. · 2010 [cited by applicant]
US 20110055274A1 · Scales et al. · 2011 [cited by applicant]
US 20110087458A1 · Clementi et al. · 2011 [cited by applicant]
US 20120011398A1 · Eckhardt et al. · 2012 [cited by applicant]
US 20120014377A1 · Joergensen et al. · 2012 [cited by applicant]
US 20120081567A1 · Cote et al. · 2012 [cited by applicant]
US 20120102006A1 · Larson et al. · 2012 [cited by applicant]
US 20120124012A1 · Provenzano et al. · 2012 [cited by applicant]
US 20120124013A1 · Provenzano · 2012 [cited by applicant]
US 20120124046A1 · Provenzano · 2012 [cited by applicant]
US 20130036091A1 · Provenzano · 2013 [cited by examiner]
US 20130111261A1 · Dalton · 2013 [cited by examiner]
US 20150363124A1 · Rath · 2015 [cited by examiner]
US 20220019350A1 · Karr · 2022 [cited by examiner]
US 20220027051A1 · Kant · 2022 [cited by examiner]
US 20220091771A1 · Freilich · 2022 [cited by examiner]
US 20220156165A1 · Grunwald · 2022 [cited by examiner]
US 20220229744A1 · Freilich · 2022 [cited by examiner]
US 20220334725A1 · Mertes · 2022 [cited by examiner]
US 20230014785A1 · Karr · 2023 [cited by examiner]
US 20230083480A1 · Karumbunathan · 2023 [cited by examiner]
US 20230088620A1 · Karumbunathan · 2023 [cited by examiner]
US 20230350858A1 · Karr · 2023 [cited by examiner]
US 20230353635A1 · Karumbunathan · 2023 [cited by examiner]
Thomson, Alexander, et al., The Case for Determinism in Database Systems, Proceedings of the VLDB Endowment, vol. 3, No. 1, 2010 (11 pgs). [cited by applicant]