IP Library Granted Patent US 12,314,231
Granted Patent B2
US 12,314,231 · App. 18/392,883 · Granted May 27, 2025

Systems and methods for increasing database access concurrency

Inventors: Wilson Cheng-Yi Hsieh (Syosset, NY); Alexander Lloyd (New York, NY); Eric Hugh Veach (Bellevue, WA)
Assignee: Google Inc.
G06F16/211G06F16/2322G06F16/2329
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,314,231
App. No.
18/392,883
Granted
May 27, 2025
Kind
B2
Abstract

The various embodiments described herein include methods, devices, and systems for reading and writing data from a database table. In one aspect, a method includes: (1) initiating a read transaction to read from a first non-key column of a row in the database table, the database table having a plurality of rows, each row comprising a primary key and a plurality of non-key columns, the initiating including: (a) determining that a write transaction holds a lock on a second non-key column of the row in the database table, and (b) determining that no lock is held on the first non-key column; and (2) in response, concurrently reading data from the first non-key column and writing a new column value to the second non-key column; where each non-key column includes a last-write timestamp that indicates when the last write occurred for the respective non-key column.

Claims (18)

1. A method of maintaining concurrency, comprising:

initiating a write transaction for data in a first partition of a database table, the database table having a plurality of rows;

locking, with one or more processors, the first partition without locking the entire row;

receiving, with one or more processors, a read request for data in a second partition of the database table, the second partition being distinct from the first partition, the second partition having a last-write timestamp that indicates when the last write occurred for the second partition, the read request associated with a read timestamp selected to be greater than the last-write timestamp of the first partition and less than a minimum next new write timestamp for the database table; and

reading, with one or more processors, the second partition while the write transaction holds the lock on the first partition, wherein reading the second partition is performed prior to completion of the write transaction for the first partition and comprises selecting a value from the second partition corresponding to the read timestamp.

2. The method of claim 1 , further comprising prohibiting editing of objects associated with timestamps less than the last-write timestamp.

3. The method of claim 1 , wherein the write transaction is received at a database replica, and wherein the database replica independently serves the write transaction without having to communicate with other database servers.

4. The method of claim 1 , wherein the first partition comprises a plurality of columns.

5. A system for maintaining concurrency, comprising:

memory storing a database table having a plurality of partitions; and

one or more processors in communication with the memory, the one or more processor configured to:

initiate a write transaction for data in a first partition of the database table, the database table having a plurality of rows;

lock the first partition without locking the entire row;

receive a read request for data in a second partition of the database table, the second partition being distinct from the first partition, the second partition having a last-write timestamp that indicates when the last write occurred for the second partition, the read request associated with a read timestamp selected to be greater than the last-write timestamp of the first partition and less than a minimum next new write timestamp for the database table; and

read the second partition while the write transaction holds the lock on the first partition, wherein reading the second partition is performed prior to completion of the write transaction for the first partition and comprises selecting a value from the second partition corresponding to the read timestamp.

6. The system of claim 5 , wherein the one or more processors are further configured to prohibit editing of objects associated with timestamps less than the last-write timestamp.

7. The system of claim 5 , wherein the write transaction is received at a database replica, and wherein the database replica independently serves the write transaction without having to communicate with other database servers.

8. The system of claim 5 , wherein the first partition comprises a plurality of columns.

Assignments (2)
CHANGE OF NAME Recorded Jan 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 066192/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2023
From: HSIEH, WILSON CHENG-YI; LLOYD, ALEXANDER; VEACH, ERIC HUGH
To: GOOGLE INC.
Reel/Frame 065968/0836 →
Continuity (7)
Continuation 17824348 · May 25, 2022
Continuation 16730095 · Dec 30, 2019
Continuation 15665273 · Jul 31, 2017
Continuation 13909928 · Jun 4, 2013
Provisional Application 61655973 · Jun 5, 2012
Provisional Application 61655438 · Jun 4, 2012
Related Publication 20240143560A1 · May 2, 2024
References Cited (89)
US 5333315A · Saether et al. · 1994 [cited by applicant]
US 5421007A · Coleman et al. · 1995 [cited by applicant]
US 5832521A · Klots et al. · 1998 [cited by applicant]
US 6477544B1 · Bolosky et al. · 2002 [cited by applicant]
US 6754657B2 · Lomet · 2004 [cited by examiner]
US 6772155B1 · Stegelmann · 2004 [cited by applicant]
US 6963914B1 · Breitbart et al. · 2005 [cited by applicant]
US 6981114B1 · Wu · 2005 [cited by applicant]
US 7065618B1 · Ghemawat et al. · 2006 [cited by applicant]
US 7334004B2 · Ganesh et al. · 2008 [cited by applicant]
US 7363326B2 · Margolus · 2008 [cited by applicant]
US 7430570B1 · Srinivasan et al. · 2008 [cited by applicant]
US 7567973B1 · Burrows et al. · 2009 [cited by applicant]
US 7774469B2 · Massa et al. · 2010 [cited by applicant]
US 8627135B2 · Aron et al. · 2014 [cited by applicant]
US 8719432B1 · Vermeulen et al. · 2014 [cited by applicant]
US 8806323B2 · Samavedula · 2014 [cited by applicant]
US 8838539B1 · Ashcraft et al. · 2014 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 8949208B1 · Xu et al. · 2015 [cited by applicant]
US 9678968B1 · Taylor · 2017 [cited by applicant]
US 20020133507A1 · Holenstein et al. · 2002 [cited by applicant]
US 20020178249A1 · Prabakaran et al. · 2002 [cited by applicant]
US 20030065708A1 · Jacobs et al. · 2003 [cited by applicant]
US 20030132855A1 · Swan · 2003 [cited by applicant]
US 20040205066A1 · Bhattacharjee et al. · 2004 [cited by applicant]
US 20040236746A1 · Lomet · 2004 [cited by applicant]
US 20050015404A1 · Cherkasova · 2005 [cited by applicant]
US 20050066118A1 · Perry · 2005 [cited by applicant]
US 20050149627A1 · Schreter · 2005 [cited by applicant]
US 20050177590A1 · Chen et al. · 2005 [cited by applicant]
US 20050192991A1 · Nomoto · 2005 [cited by applicant]
US 20050210218A1 · Hoogterp · 2005 [cited by applicant]
US 20060047895A1 · Rowan · 2006 [cited by applicant]
US 20070016546A1 · De Vorchik et al. · 2007 [cited by applicant]
US 20070050429A1 · Goldring et al. · 2007 [cited by applicant]
US 20070183224A1 · Erofeev · 2007 [cited by applicant]
US 20070219999A1 · Richey et al. · 2007 [cited by applicant]
US 20080071853A1 · Mosler et al. · 2008 [cited by applicant]
US 20080096662A1 · Kuwahara et al. · 2008 [cited by applicant]
US 20080133616A1 · Willoughby · 2008 [cited by applicant]
US 20080140629A1 · Porter · 2008 [cited by examiner]
US 20080201366A1 · Devarakonda · 2008 [cited by applicant]
US 20080243879A1 · Gokhale et al. · 2008 [cited by applicant]
US 20080250072A1 · Nguyen · 2008 [cited by applicant]
US 20080263305A1 · Shu et al. · 2008 [cited by applicant]
US 20090070330A1 · Hwang et al. · 2009 [cited by applicant]
US 20090327642A1 · Ogihara et al. · 2009 [cited by applicant]
US 20100023520A1 · Barboy et al. · 2010 [cited by applicant]
US 20100077165A1 · Lu et al. · 2010 [cited by applicant]
US 20100281013A1 · Graefe · 2010 [cited by applicant]
US 20110029498A1 · Ferguson et al. · 2011 [cited by applicant]
US 20110196664A1 · Zunger et al. · 2011 [cited by applicant]
US 20120036161A1 · Lacapra et al. · 2012 [cited by applicant]
US 20120151272A1 · Behrendt et al. · 2012 [cited by applicant]
US 20120159102A1 · Kan · 2012 [cited by applicant]
US 20120303791A1 · Calder et al. · 2012 [cited by applicant]
US 20130060742A1 · Chang et al. · 2013 [cited by applicant]
US 20130110774A1 · Shah et al. · 2013 [cited by applicant]
US 20130204991A1 · Skjolsvold et al. · 2013 [cited by applicant]
US 20130318129A1 · Vingralek · 2013 [cited by examiner]
US 20130346365A1 · Kan et al. · 2013 [cited by applicant]
US 20140007239A1 · Sharpe et al. · 2014 [cited by applicant]
US 20150012497A1 · Clark et al. · 2015 [cited by applicant]
CN 101001148A · 2007 [cited by applicant]
CN 101316274B · 2010 [cited by applicant]
CN 101854392B · 2012 [cited by applicant]
WO 2011100366A2 · 2011 [cited by applicant]
WO 2012040391A1 · 2012 [cited by applicant]
Google Inc., International Preliminary Report on Patentability, PCT/US2013/044105, Dec. 9, 2014, 4 pgs. [cited by applicant]
Google Inc., International Preliminary Report on Patentability, PCT/US2013/044163, Dec. 9, 2014, 9 pgs. [cited by applicant]
International Search Report and Written Opinion dated Nov. 14, 2013, received in International Application No. PCT/US2013/044105, which corresponds to U.S. Appl. No. 13/909,021, 7 pages (Yasushi Saito). [cited by applicant]
International Search Report and Written Opinion dated Dec. 13, 2013, received in International Application No. PCT/US2013/042063, which corresponds to U.S. Appl. No. 13/898,411, 17 pages (Jeffrey Adgate Dean). [cited by applicant]
Bernstein, Chapter 5-Multiversion Concurrency Control, Concurrency Control and Recovery in Database Systems, Jan. 1, 1987, 24 pgs. [cited by applicant]
Elmasri, Chapter 20-Physical Database Design and Tuning, Fundamentals of Database Systems, 6th Ed., Addison-Wesley, Jan. 1, 2011, 16 pgs. [cited by applicant]
Garcia-Molina, Chapter 18-Concurrency Control, Database Systems: The Complete Book, Prentice-Hall, Jan. 1, 2002, 72 pgs. [cited by applicant]
Garcia-Molina, Chapter 1-The Worlds of Database Systems, Database Systems: The Complete Book, Prentice Hall, Jan. 1, 2002, 21 pgs. [cited by applicant]
Google Inc., International Search Report and Written Opinion, PCT/US2013/044163, May 9, 2014, 11 pgs. [cited by applicant]
Zhang, Supporting Multi-Row Distributed Transactions with Global Snapshot Isolation Using Bare-Bones Hbase, 11th IEEE/ACM Int'l Conf. on Grid Computing, Piscataway, NJ, Oct. 25, 2010, pp. 177-184. [cited by applicant]
Ghemawat, The Google File System, Proc. of the ACM Symposium on Operating Systems Principles, Oct. 19, 2003, pp. 1-15. [cited by applicant]
Ivanova, Self-Organizing Strategies for a Column-Store Database, Proc. of the 11th International Conference on Extending Database Technology Advances in Database Technology, EDBT'08, Mar. 25, 2008, pp. 157-168. [cited by applicant]
Google Inc., Invitation to Pay Additional Fees, PCT/US2013/042063, Jul. 30, 2013, 8 pgs. [cited by applicant]
Ferro, A Critique of Snapshot Isolation, Yahoo Research, Apr. 10-13, 2012, 14 pgs. [cited by applicant]
Thomson, Calvin: Fast Distributed Transactions for Partitioned Database Systems, May 20-24, 2012, 12 pgs. [cited by applicant]
Cahill, Seriallizable Isolation for Snapshot Databases, Jun. 9-12, 2008, 10 pgs. [cited by applicant]
Chang, Fay et. al. “Bigtable: A Distributed Storage System for Structured data”. Nov. 2006. Google. http://research.google.com/archive/bigtable.html. pp. 1-14. [cited by applicant]
Notification of First Office Action 201380037792.3, dated Sep. 28, 2016, 11 pgs. [cited by applicant]
Summons to Attend Oral Proceedings for European Patent Application No. 13730730.2 dated Jul. 31, 2019. 10 pages. [cited by applicant]
Preliminary Opinion of the Examining Division for European Patent Application No. 13730730.2 dated Mar. 3, 2020. 7 pages. [cited by applicant]
Cited By (1)
US 12,717,814