Multi-version concurrency control on in-memory snapshot store of oracle in-memory database

US9128972B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9128972-B2
Application numberUS-201414337183-A
CountryUS
Kind codeB2
Filing dateJul 21, 2014
Priority dateSep 21, 2013
Publication dateSep 8, 2015
Grant dateSep 8, 2015

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 provided for maintaining data persistently in one format, but making that data available to a database server in more than one format. For example, one of the formats in which the data is made available for query processing is based on the on-disk format, while another of the formats in which the data is made available for query processing is independent of the on-disk format. Data that is in the format that is independent of the disk format may be maintained exclusively in volatile memory to reduce the overhead associated with keeping the data in sync with the on-disk format copies of the data.

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 the database includes a first set of data; maintaining a second set of data in volatile memory that is accessible to the database server; wherein each data item in the second set of data is a copy of a corresponding data item in the first set of data; wherein both the first set of data and the second set of data have copies of a particular data item; maintaining a bitmap that indicates which data items, in the second set of data, are no longer valid; wherein the maintaining the bitmap includes responding to an update of the particular data item by: causing a copy of the particular data item, in the first set of data on the persistent storage, to be updated; without updating a copy of the particular data item in the second set of data, setting a particular bit, in the bitmap, that corresponds to the particular data item, to indicate that the copy of the particular data item in the second set of data in the volatile memory is not valid; after setting the particular bit in the bitmap, receiving, by the database server, a request to execute a database command that requires the particular data item; during execution of the database command: determining, based, at least in part, on the set particular bit that corresponds to the particular data item, whether the copy of the particular data item in the second set of data in the volatile memory is not valid; in response to determining that the copy of the particular data item in the second set of data in the volatile memory is valid, retrieving the copy of the particular data item from the second set of data in the volatile memory; and in response to determining that the copy of the particular data item in the second set of data in the volatile memory is not valid, retrieving the copy of the particular data item from the first set of data on the persistent storage. 2. The method of claim 1 , wherein: the first set of data is in a persistent format; the second set of data is in a mirror format; the mirror format is different from and independent of the persistent format; and the second set of data is generated by converting the first set of data to the mirror format. 3. The method of claim, further comprising responding to the update to the particular data item by generating a record that indicates the particular bit was changed at a particular time. 4. A method comprising: maintaining, on persistent storage, a database that is accessible to a database server; wherein the database includes a first set of data; maintaining a second set of data in volatile memory that is accessible to the database server; wherein each data item in the second set of data is a copy of a corresponding data item in the first set of data; wherein both the first set of data and the second set of data have copies of a particular data item; maintaining a bitmap that indicates which data items, in the second set of data, are no longer valid; wherein maintaining the bitmap includes responding to an update of the particular data item by: updating a copy of the particular data item in the first set of data; without updating a copy of the particular data item in the second set of data, setting a particular bit, in the bitmap, that corresponds to the particular data item, to indicate that the copy of the particular data item in the second set of data is not valid; wherein the update to the particular data item was made by a certain transaction that committed at a particular time; and wherein the method further comprises: after the update of the particular data item, determining whether a particular query associated with a particular transaction is allowed to use the copy of the particular data item from the second set of data by: determining a snapshot time for the particular transaction; responsive to the snapshot time being before the particular time, allowing the particular transaction to use the copy of the particular data item from the second set of data; and responsive to the snapshot time being after the particular time: not allowing the particular transaction to use the copy of the particular data item from the second set of data, and obtaining a copy of the particular data item, for the particular query, from a source other than the second set of data. 5. The method of claim 4 , wherein the source other than the second set of data is the first set of data. 6. The method of claim 4 , wherein the source other than the second set of data is an entry, in an in-memory journal, that has an updated copy of the particular data item. 7. The method of claim 4 , further comprising: generating a delete vector for the particular query based on the bitmap and a set of records that indicates when bits of the bitmap were changed; wherein the delete vector generated for the particular query indicates which data items, in the second set of data, were invalid as of the snapshot time of the particular transaction; and using the delete vector to determine which data items the particular query is allowed to access in the second set of data. 8. The method of claim 7 , wherein generating the delete vector comprises: making a copy of the bitmap; resetting, within the copy of the bitmap, all bits that were set after the snapshot time of the particular transaction. 9. A method comprising: maintaining, on persistent storage, a database that is accessible to a database server; wherein the database includes a first set of data; maintaining a second set of data in volatile memory that is accessible to the database server; wherein each data item in the second set of data is a copy of a corresponding data item in the first set of data; wherein both the first set of data and the second set of data have copies of a particular data item; maintaining a first bitmap that indicates which data items, in the second set of data, are no longer valid; wherein maintaining the first bitmap includes responding to an update of the particular data item by: updating a copy of the particular data item in the first set of data; without updating a copy of the particular data item in the second set of data, setting a particular bit, in the first bitmap, that corresponds to the particular data item, to indicate that the copy of the particular data item in the second set of data is not valid; wherein the second set of data was current as of a first point in time; wherein first bitmap indicates which data items in the second set of data were updated after the first point in time and before a second point in time; and wherein the method further comprises: at the second point in time, producing an updated second set of data by merging into the second set of data those updates that were made to data items in the second set of data between the first point in time and the second point in time; and maintaining a second bitmap that indicates which data items, in the second set of data, have been updated since the second point in time. 10. The method of claim 9 , further comprising: after producing the updated second set of data, determining whether a particular query is allowed to use a copy of the particular data item from the updated second set of data; wherein the particular query is associated with a snapshot time that is after the first point in time and before the second point in time; wherein determining whether the particular query is allowed to use the copy of the particular data item from the updated second set of data includes: using records of changes to the first bitmap to identify which data items did not change between the

Assignees

Inventors

Classifications

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 US9128972B2 cover?
Techniques are provided for maintaining data persistently in one format, but making that data available to a database server in more than one format. For example, one of the formats in which the data is made available for query processing is based on the on-disk format, while another of the formats in which the data is made available for query processing is independent of the on-disk format. Da…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F17/30356. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 08 2015 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).