IP Library Granted Patent US 11,080,271
Granted Patent B2
US 11,080,271 · App. 15/261,582 · Granted Aug 3, 2021

Global database transaction management service

Inventors: Juchang Lee (Seoul, KR); Chang Gyoo Park (Gwanak-gu, KR); Francis Gropengiesser (Wiesloch, DE); Anil Kumar Goel (Waterloo, CA); Deok Koo Kim (Gwanak-gu, KR); SunHo Lee (Seoul, KR)
G06F16/2379G06F9/466G06F16/2343G06F16/2365
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,080,271
App. No.
15/261,582
Granted
Aug 3, 2021
Kind
B2
Abstract

A transaction management service layer monitors a plurality of read and write transactions being executed by the data engines by way of client libraries at each of a plurality of data engines. In addition, the transaction management server layer maintains and coordinates transaction timestamp and sequence numbers that are shared by the plurality of data engines. The transaction management service layer identifies and resolves conflicts among the plurality of transactions. The transaction management service layer is a separate and independent service that is isolated from other components of the plurality of data engines. Related apparatus, systems, techniques and articles are also described.

Claims (46)

1. A method comprising:

monitoring, by a transaction management service layer executed by a transaction broker server and a lock manager server and via client libraries at each of a plurality of data engines, a plurality of read and write transactions being executed by the data engines, at least a subset of the data engines being heterogeneous;

maintaining and coordinating, by the transaction management service layer, transaction timestamp and sequence numbers that are shared by the plurality of data engines;

identifying, by the transaction management service layer, conflicts among the plurality of transactions; and

resolving, by the transaction management service layer, the identified conflicts among the plurality of transactions;

wherein:

the transaction management service layer is a separate and independent service that is isolated from other components of the plurality of data engines to provide a single transaction domain across the heterogeneous data engines;

the transaction management service layer is executed, at least in part, by a transaction broker server separate from the data engines that maintains a global commit timestamp that is incremented when write transactions commit;

each data engine comprises a different client library embedded therein that wraps access methods associated with the transaction broker server and the lock manager executing the transaction management service layer, the access methods being called by the respective data engine such that the corresponding client library processes such calls and communicates with the transaction broker server and the lock manager server;

the transaction broker server provides snapshot isolation by assigning commit identifiers to committing write transactions and snapshot timestamps to starting read transactions;

the lock manager server maintains a hierarchy of multi-granular lock tables used to detect transactional conflicts among concurrently executing transactions;

the transaction broker server provides a minimum snapshot timestamp which is used to determine which data across all of the data engines is to be subject to garbage collection.

2. The method of claim 1 , wherein the transaction broker server maintains a transaction identification generator which assigns transaction identifications to each transaction as it starts.

3. The method of claim 1 , wherein the transaction broker server provides a minimum snapshot timestamp which is used to determine which data in the data engines is to be subject to garbage collection.

4. The method of claim 1 , wherein the hierarchy of multi-granular lock tables comprise: table locks, partition locks, and record locks.

5. The method of claim 1 , wherein the conflicts are resolved by the lock manager implementing a hybrid of optimistic locking and pessimistic locking such that database transactions are committed prior to corresponding lock requests being granted and such transactions are rolled back if such lock requests are not granted.

6. The method of claim 1 , wherein the client libraries group multiple requests originating from concurrently executing transactions.

7. The method of claim 5 , wherein the client libraries group and buffer multiple requests from a same transaction.

8. The method of claim 1 , wherein the client libraries are embedded to nodes of the data engines.

9. The method of claim 8 , wherein if a first of the data engines, which embeds a first client library within a same process boundary, calls an access method provided by a second client library, the second client library processes the call and communicates with at least one of the transaction broker server and a lock server.

10. A system comprising:

a plurality of data engines each storing or otherwise making data available to remote client computing systems, at least a portion of the data engines being heterogeneous, each data engine comprising at least one programmable data processor and memory,

a transaction broker server and a lock manager server forming a transaction management service layer;

wherein the transaction management service layer:

monitors, via client libraries at each of the plurality of data engines, a plurality of read and write transactions being executed by the data engines;

maintains and coordinates transaction timestamp and sequence numbers that are shared by the plurality of data engines;

identifies conflicts among the plurality of transactions;

resolves the identified conflicts among the plurality of transactions using optimistic concurrency control, hybrid locking such that database transactions are committed prior to corresponding lock requests being granted and such transactions are rolled back if such lock requests are not granted; and

is a separate and independent service that is isolated from other components of the plurality of data engines to provide a single transaction domain across the heterogeneous data engines;

wherein the transaction broker server provides a minimum snapshot timestamp which is used to determine which data across all of the data engines is to be subject to garbage collection.

11. The system of claim 10 , wherein the transaction broker server:

provides snapshot isolation by assigning commit identifiers to committing write transactions and snapshot timestamps to starting read transactions; and

maintains a transaction identification generator which assigns transaction identifications to each transaction as it starts.

12. The system of claim 11 , wherein the a lock manager server maintains a hierarchy of multi-granular lock tables used to detect transactional conflicts among concurrently executing transactions.

13. The system of claim 12 , wherein the hierarchy of multi-granular lock tables comprise: table locks, partition locks, and record locks.

14. A non-transitory computer program product storing instructions which, when executed by at least one data processor forming part of at least one computing device, perform operations comprising:

monitoring, by a transaction management service layer executed by a transaction broker server and a lock manager server and via client libraries at each of a plurality of data engines, a plurality of read and write transactions being executed by the data engines, at least a portion of the data engines being heterogeneous;

maintaining and coordinating, by the transaction management service layer, transaction timestamp and sequence numbers that are shared by the plurality of data engines;

identifying, by the transaction management service layer, conflicts among the plurality of transactions; and

resolving, by the transaction management service layer, the identified conflicts among the plurality of transactions;

wherein:

the transaction management service layer is a separate and independent service that is isolated from other components of the plurality of data engines;

each data engine comprises a different client library embedded therein that wraps access methods associated with both of a transaction broker server and a lock manager server that together execute the transaction management service layer;

the transaction broker server maintaining a global commit timestamp which is incremented when a global write transaction commits across one or more of the data engines;

the lock manager resolves conflicts using a hybrid of optimistic locking and pessimistic locking such that database transactions are committed prior to corresponding lock requests being granted and such transactions are rolled back if such lock requests are not granted; and

the transaction broker server provides a minimum snapshot timestamp which is used to determine which data across all of the data engines is to be subject to garbage collection.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2016
From: LEE, JUCHANG; PARK, CHANG GYOO; GROPENGIESSER, FRANCIS; GOEL, ANIL KUMAR; KIM, DEOK KOO; LEE, SUNHO
To: SAP SE
Reel/Frame 039701/0676 →
Continuity (1)
Related Publication 20180075083A1 · Mar 15, 2018
Cited By (1)
US 12,547,611