Query execution against an in-memory standby database
US-2017116252-A1 · Apr 27, 2017 · US
US10437688B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10437688-B2 |
| Application number | US-201615273273-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 22, 2016 |
| Priority date | Sep 22, 2016 |
| Publication date | Oct 8, 2019 |
| Grant date | Oct 8, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.