TRANSACTION PROTOCOL FOR READING DATABASE VALUES
First Claim
1. A method comprising the steps of:
- obtaining a first timestamp value from a timestamp service;
reading a database value stored in a database table cell;
obtaining a write timestamp value associated with the database value;
using the write timestamp value associated with the database value to read a second timestamp value from a row of a transaction table;
providing the database value to a client application in context of a first transaction in response to determining, based on a comparison between the first timestamp value and the second timestamp value, that a second transaction that wrote the database value to the cell committed before the first transaction started;
wherein the method is performed by one or more computing devices.
7 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for more efficient multi-row atomic, consistent, isolated and durable (ACID)-compliant transactions with snapshot isolation semantics (or just “multi-row transactions” for short). In some embodiments, the techniques are implemented in a computing system that includes a client application, a lightweight in-memory lease-based lock service, a multi-row transaction orchestrator, and an underlying database system. The transaction orchestrator implements a read protocol and a write protocol that provides support to the client application for carrying out multi-row transactions against the underlying database system irrespective of whether the database system itself supports multi-row transactions. The transaction orchestrator explicitly maintains transaction-level locks obtained from the lease-based lock service as part of the transaction protocol. Further, the transaction orchestrator is tolerant to lock service failure and unavailability without compromising ACID-compliance and snapshot isolation guarantees to the client application.
-
Citations
22 Claims
-
1. A method comprising the steps of:
-
obtaining a first timestamp value from a timestamp service; reading a database value stored in a database table cell; obtaining a write timestamp value associated with the database value; using the write timestamp value associated with the database value to read a second timestamp value from a row of a transaction table; providing the database value to a client application in context of a first transaction in response to determining, based on a comparison between the first timestamp value and the second timestamp value, that a second transaction that wrote the database value to the cell committed before the first transaction started; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
one or more processors; one or more computer-readable media storing instructions which, when executed by the one or more processors, causes performance of the steps of; obtaining a first timestamp value from a timestamp service; reading a database value stored in a database table cell; obtaining a write timestamp value associated with the database value; using the write timestamp value associated with the database value to read a second timestamp value from a row of a transaction table; providing the database value to a client application in context of a first transaction in response to determining, based on a comparison between the first timestamp value and the second timestamp value, that a second transaction that wrote the database value to the cell committed before the first transaction started. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification