Multiversion concurrency control of database records with uncommitted transactions

US11416470B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11416470-B2
Application numberUS-201916426052-A
CountryUS
Kind codeB2
Filing dateMay 30, 2019
Priority dateNov 4, 2016
Publication dateAug 16, 2022
Grant dateAug 16, 2022

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.

Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversion concurrency control information by the received query. A key lookup may be performed, and when the key lookup encounters an uncommitted row for a transaction number, a corresponding transaction header identifying data to identify a data array element to determine whether the transaction number is committed, and determining the transaction counter number when the transaction number is committed. The transaction counter number may be stamped on the row version record when it is determined that the row is committed.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method of managing digital data for a plurality of tenants to software instances, wherein each of the instances is implemented on at least one of a plurality of instance nodes of a server system in communication with each other, and wherein the managing includes managing multiversion concurrency control of different instances of the digital data which may be stored in one or more storage device locations communicatively coupled to the server system as records, each of which is identified by a key that includes identification of one or more rows in a table of a database, the method comprising: performing, at the server system, a key lookup in the table of the database based on a received query; when the key lookup encounters an uncommitted row, accessing, at the one or more storage device locations communicatively coupled to the server system, a corresponding transaction header identifying data to identify a data array element to determine whether a transaction number is committed, and determine its corresponding transaction counter number; and stamping, at the server system, a transaction counter number on the row version record. 2. The method of claim 1 , wherein the accessing the corresponding transaction header comprises: identifying the data array element using a transaction header index field on the row version record and a row lock record. 3. The method of claim 1 , further comprising: for each row affected by a transaction having the transaction identifier, stamping each row affected by the transaction with a transaction counter number, and releasing any row locks. 4. The method of claim 1 , further comprising: performing a row lookup when one or more row lookup records are uncommitted, such that the one or more row lookup records are uncommitted when they are not stamped with the transaction counter number. 5. The method of claim 4 , further comprising: independently processing the one or more uncommitted row lookup records while the one or more uncommitted records are not externally recognizable to queries. 6. A computer-implemented method of managing digital data for a plurality of tenants to software instances, wherein each of the instances is implemented on at least one of a plurality of instance nodes of a server system in communication with each other, wherein the managing includes managing multiversion concurrency control of different instances of the digital data which may be stored in one or more storage device locations communicatively coupled to the server system as records, each of which is identified by a key that includes identification of one or more rows in a table of a database, and wherein a transaction is recognizable to one or more queries, the method comprising: searching, at the server system, a key's row version chain of records to determine a newest recognizable row version record based on a snapshot transaction counter number, the key's self identifier number, and a command identification statement, the searching comprising: determining, at the server system, whether a row of the row version chain of records is uncommitted; when the row is uncommitted, reading, at the server system, a transaction counter number value from the transaction header identifying information; and when the transaction counter number is valid by having a row transaction counter that is the same as the transaction counter number, stamping, at the server system, the transaction counter number on the current row version record and marking the current row version record as committed. 7. The method of claim 6 , further comprising: determining whether the row version record is recognizable to a multiversion concurrency control (MVCC); and stopping the search when the row version record is recognizable to the MVCC. 8. The method of claim 6 , further comprising: determining whether the row version record is recognizable to a multiversion concurrency control (MVCC); and advancing to the next row version record when one exists or stopping the search. 9. A server system to manage digital data for a plurality of tenants to software instances, wherein each of the instances is implemented on at least one of a plurality of instance nodes of the server system in communication with each other, and wherein the managing includes managing multiversion concurrency control of different instances of the digital data which may be stored in one or more storage device locations communicatively coupled to the server system as records, each or which is identified by a key that includes identification of one or more rows in a table of a database, comprising: the server system to: perform a key lookup in the table of the database based on a received query; when the key lookup encounters an uncommitted row, the server system accesses, at the one or more storage device locations communicatively coupled to the server system, a corresponding transaction header identifying data to identify a data array element in the one or more storage device locations to determine whether a transaction number is committed, and determine its corresponding transaction counter number; and stamp the transaction counter number on the row version record in the one or more storage device locations. 10. The system of claim 9 , wherein the server system accesses the corresponding transaction header in the one or more storage device locations by identifying the data array element using a transaction header index field on the row version record and a row lock record. 11. The system of claim 9 , wherein the server system stamps each row affected by the transaction with the transaction counter number and releases any row locks for each row affected by a transaction having the transaction identifier in the one or more storage device locations. 12. The system of claim 9 , wherein the server system performs a row lookup in the one or more storage device locations when one or more row lookup records are uncommitted, such that the one or more row lookup records are uncommitted when they are not stamped with the transaction counter number. 13. The system of claim 12 , wherein the server system independently processes the one or more uncommitted row lookup records of the one or more storage device locations while the one or more uncommitted records are not externally recognizable to queries. 14. A server system to manage digital data for a plurality of tenants to software instances, wherein each of the instances is implemented on at least one of a plurality of instance nodes of the server system in communication with each other, wherein the managing includes managing multiversion concurrency control of different instances of the digital data which may be stored in one or more storage device locations that are communicatively coupled to the server system as records identified by a key that includes identification of one or more rows in a table of a database, and wherein a transaction is recognizable to one or more queries, comprising: the server system to: search a key's row version chain of records in the one or more storage device locations to determine a newest recognizable row version record based on a snapshot transaction counter number, the key's self identifier number, and a command identification statement, wherein the server system: determines whether a row of the row version chain of records is uncommitted; read a transaction counter number value from the transaction header identifying information when the row is uncommitted; and stamp the transaction counter number on the current row version record and marking the c

Assignees

Inventors

Classifications

  • using versioning · CPC title

  • Locking methods, e.g. distributed locking or locking implementation details · 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 US11416470B2 cover?
Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversi…
Who is the assignee on this patent?
Salesforce Com Inc, Salesforce Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/2329. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 16 2022 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).