Global database transaction management service

US11080271B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11080271-B2
Application numberUS-201615261582-A
CountryUS
Kind codeB2
Filing dateSep 9, 2016
Priority dateSep 9, 2016
Publication dateAug 3, 2021
Grant dateAug 3, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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

Assignees

Inventors

Classifications

  • Ensuring data consistency and integrity · CPC title

  • Locking methods, e.g. distributed locking or locking implementation details · CPC title

  • Updates performed during online database operations; commit processing · CPC title

  • Transaction processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11080271B2 cover?
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 servi…
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F16/2379. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 03 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).