Enhancing consistent read performance for in-memory databases

US10437688B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10437688-B2
Application numberUS-201615273273-A
CountryUS
Kind codeB2
Filing dateSep 22, 2016
Priority dateSep 22, 2016
Publication dateOct 8, 2019
Grant dateOct 8, 2019

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.

Techniques are described for maintaining coherency of a portion of a database object mirrored in a particular node of a database. The techniques involve maintaining invalidation logs which identify transactions that have committed to a database. Based on the invalidation logs, the particular node generates invalid-row ID metadata which identifies, for each system change number, one or more rows that are not transactionally consistent with data stored in the database object as of said system change number.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: maintaining, on persistent storage, a database that is accessible to a database server; wherein said database includes a set of persistent format data (PF data), stored on said persistent storage, in a persistent format; converting said set of PF data to a mirror format to produce a set of mirror format data (MF data); storing said set of MF data within byte-addressable memory; receiving a first past-state consistent-read query associated with a first query system change number (SCN); in response to receiving the first past-state consistent-read query: determining a first set of row identifiers; wherein the first set of row identifiers consists of the row identifier of each row in the MF data that is not transactionally consistent with a corresponding row in said PF data as of the first query SCN; processing the first past-state consistent-read query using data, from the MF data, of rows with row identifiers that are not in the first set of row identifiers; after processing the first past-state consistent-read query, maintaining, in a buffer, the first set of row identifiers in association with the first query SCN; receiving a second past-state consistent-read query associated with a second query SCN that is equal to or greater than the first query SCN; in response to receiving the second past-state consistent-read query: based on the first query SCN, identifying the first set of row identifiers in the buffer; reading the first set of row identifiers from the buffer; processing the second past-state consistent-read query using data, from the MF data, of rows with row identifiers that are not in the first set of row identifiers. 2. The method of claim 1 , wherein, using said MF data, processing the second past-state consistent-read query comprises: based on the first set of row identifiers in the buffer, determining that a row in said MF data is not transactionally consistent with the first query SCN, and in response to determining that a row in said MF data is not transactionally consistent with said first query SCN, retrieving a value for said row that is transactional consistent with said first query SCN. 3. The method of claim 1 , further comprising: storing an invalidation bitmap which identifies, as of a bitmap SCN, each row that is not transactionally consistent with a corresponding row in said PF data; storing transaction entries, each of which identifying a particular transaction, a transaction SCN, and one or more rows affected by the particular transaction; determining the first set of row identifiers by at least: using the transaction entries, generating a rollback invalidation bitmap which identifies, as of the first query SCN, each row that is not transactionally consistent with a corresponding row in said PF data; converting the rollback invalidation bitmap into the first set of row identifiers; storing the first set of row identifiers and the first query SCN in the buffer. 4. The method of claim 3 , further comprising: identifying, one or more transaction entries corresponding to one or more SCNs after the first query SCN and up to and including a second SCN; identifying, for each of the one or more transaction entries, one or more rows affected by one or more transactions; determining, from the identified one or more rows and the first set of row identifiers, a second set of row identifiers; wherein the second set of row identifiers consists of the row identifier of each row in the MF data that is not transactionally consistent with a corresponding row in said PF data as of the second SCN. 5. The method of claim 1 , further comprising: storing transaction entries, each of which identifying a transaction SCN and one or more rows affected by a transaction corresponding to the transaction SCN; receiving a third past-state consistent-read query associated with a third query SCN; in response to receiving the third past-state consistent-read query: identifying a last transaction SCN associated with a last transaction that caused one or more rows to not be transactionally consistent with one or more corresponding rows in said PF data prior to the third query SCN; identifying, in the buffer, a particular SCN associated with a change entry prior to the third query SCN; determining that the transaction SCN is lower than the particular SCN; identifying, one or more rows affected by transactions between the particular SCN and the third query SCN; in response to identifying the one or more rows affected by transactions between the particular SCN and the third query SCN, retrieving a value for said one or more rows that is transactionally consistent with said third query SCN. 6. The method of claim 5 , further comprising: storing a change threshold value; determining that a number of the one or more rows affected by transactions between the particular SCN and the third query SCN exceeds the change threshold value and, in response, adding a second set of row identifiers to the buffer wherein the second set of row identifiers comprises at least row identifiers of the one or more rows affected by transactions between the particular SCN and the third query SCN. 7. The method of claim 1 , further comprising: identifying a new set of row identifiers to maintain in the buffer; determining that the buffer does not contain enough space to add the new set of row identifiers and, in response, erasing an oldest set of row identifiers. 8. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause: maintaining, on persistent storage, a database that is accessible to a database server; wherein said database includes a set of persistent format data (PF data), stored on said persistent storage, in a persistent format; converting said set of PF data to a mirror format to produce a set of mirror format data (MF data); storing said set of MF data within byte-addressable memory; receiving a first past-state consistent-read query associated with a first query system change number (SCN); in response to receiving the first past-state consistent-read query: determining a first set of row identifiers; wherein the first set of row identifiers consists of the row identifier of each row in the MF data that is not transactionally consistent with a corresponding row in said PF data as of the first query SCN; processing the first past-state consistent-read query using data, from the MF data, of rows with row identifiers that are not in the first set of row identifiers; after processing the first past-state consistent-read query, maintaining, in a buffer, the first set of row identifiers in association with the first query SCN; receiving a second past-state consistent-read query associated with a second query SCN that is equal to or greater than the first query SCN; in response to receiving the second past-state consistent-read query: based on the first query SCN, identifying the first set of row identifiers in the buffer; reading the first set of row identifiers from the buffer; processing the second past-state consistent-read query using data, from the MF data, of rows with row identifiers that are not in the first set of row identifiers. 9. The one or more non-transitory computer-readable media of claim 8 wherein, using said MF data, processing the second past-state consistent-read query comprises: based on the first set of row identifiers in the buffer, determining that a row in said MF data is not transactionally consistent with the first query SCN, and in response to determining that a row in said MF data is not transactionally consistent with said first query S

Assignees

Inventors

Classifications

  • while ensuring consistency · CPC title

  • Ensuring data consistency and integrity · CPC title

  • where the redundant component is memory or memory area · CPC title

  • Improving I/O performance · CPC title

  • Data buffering arrangements · 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 US10437688B2 cover?
Techniques are described for maintaining coherency of a portion of a database object mirrored in a particular node of a database. The techniques involve maintaining invalidation logs which identify transactions that have committed to a database. Based on the invalidation logs, the particular node generates invalid-row ID metadata which identifies, for each system change number, one or more rows…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/2365. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 08 2019 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 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).