Prioritizing repopulation of in-memory compression units
US-2016085834-A1 · Mar 24, 2016 · US
US10067974B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10067974-B2 |
| Application number | US-201514983481-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 29, 2015 |
| Priority date | May 29, 2015 |
| Publication date | Sep 4, 2018 |
| Grant date | Sep 4, 2018 |
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 herein described for loading a portion of a database object into volatile memory without blocking database manipulation language transactions. The techniques involve invalidating data items loaded from blocks affected by a transaction, referred to as a straddling transaction that started before the load time and committed after the load time. Identifying these straddling transactions involves reviewing one or more transaction lists associated with the set of data items loaded in memory. The transaction list may be read in reverse temporal order of commit to identify a transaction meeting the criteria of starting before the load start, not committing before the load time, and affecting a data item loaded in memory.
Opening claim text (preview).
What is claimed is: 1. A method comprising: assigning a timestamp to an operation for making an in-memory copy of a chunk of a database object; after assigning the timestamp, performing the operation without blocking updates to data items that belong in the chunk; identifying a straddling transaction that: affected a particular data item from the chunk, started before the timestamp, and had not committed before the timestamp; and prior to allowing access to the in-memory copy of the chunk, storing data that indicates that the particular data item within the in-memory copy is invalid; wherein the method is performed by one or more computing devices. 2. The method of claim 1 , wherein the particular data item is from a block that includes a set of one or more data items that belong to the chunk; and wherein the data that indicates that the particular data item within the in-memory copy is invalid includes data that indicates the block is invalid. 3. The method of claim 1 , wherein the particular data item is from a row that includes a set of one or more data items that belong to the chunk; and wherein the data that indicates that the particular data item within the in-memory copy is invalid includes data that indicates the row is invalid. 4. The method of claim 1 , wherein the particular data item is from a block comprising: a set of one or more data items, and a set of transaction information for the set of one or more data items; and wherein identifying the straddling transaction includes scanning the set of transaction information. 5. The method of claim 1 , wherein the one or more computing devices comprise at least a first computing device and a second computing device; the method further comprising: sending a message, from the first computing device to the second computing device, to write any dirty buffers for the database object to disk; and receiving, from second computing device to the first computing device, an acknowledgement message before loading data from the chunk into an in-memory copy of the chunk. 6. The method of claim 1 , wherein the one or more computing devices comprise at least a first computing device and a second computing device; the method further comprising: at the first computing device, receiving a plurality of locks for performing the operation; at the first computing device, determining whether any lock from the plurality of locks is global; after determining a particular lock of the plurality of locks is global, sending, from the first computing device to the second computing device, a message to write to disk any dirty buffers containing at least a portion of the database object; and receiving, from the second computing device to the first computing device, an acknowledgement message before loading data from disk into the in-memory copy of the chunk. 7. The method of claim 1 , wherein: the particular data item along with at least one other data item that belongs to the chunk are located in a buffer cache; and the in-memory copy of the chunk is at least partially made from the particular data item and the at least one other data item in the buffer cache when performing the operation. 8. The method of claim 1 , wherein the particular data item along with at least one other data item that belongs to the chunk are located in a version of a block located in a buffer cache; the method further comprising: comparing the timestamp of the operation to the version of the block located in the buffer cache; wherein the in-memory copy of the chunk is at least partially made by loading the particular data item along with the at least one other data item from disk. 9. The method of claim 1 , wherein the straddling transaction is a transaction that committed after the timestamp. 10. The method of claim 1 , wherein identifying the straddling transaction includes identifying a block that could have been affected by a possible straddling transaction, wherein the block that could have been affected by the possible straddling transaction has each transaction in a transaction list a start time that occurred after the timestamp. 11. The method of claim 1 , wherein the making the in-memory copy of the chunk of the database object is in response to a DDL operation. 12. A method comprising: creating a first in-memory copy of a chunk with a first timestamp; repopulating the first in-memory copy of the chunk by creating a second in-memory copy of the chunk with a second timestamp; identifying a straddling transaction that: affected a particular data item from the chunk, started before the second timestamp, and had not committed before the second timestamp; and prior to allowing access to the second in-memory copy of the chunk, storing data that indicates that the particular data item within the second in-memory copy is invalid; wherein the method is performed by one or more computing devices. 13. The method of claim 12 , wherein creating the second in-memory copy of the chunk includes: copying any valid data items from the first in-memory copy into the second in-memory copy. 14. The method of claim 12 , the method further comprising: maintaining the first in-memory copy while creating the second in-memory copy; switching from maintaining the first in-memory copy to maintaining the second in-memory copy after storing data that indicates that the particular data item within the second in-memory copy is invalid. 15. One or more non-transitory computer-readable media storing instructions, wherein the instructions include: instructions which, when executed by one or more hardware processors, cause assigning a timestamp to an operation for making an in-memory copy of a chunk of a database object; instructions which, when executed by the one or more hardware processors, cause, after assigning the timestamp, performing the operation without blocking updates to data items that belong in the chunk; instructions which, when executed by the one or more hardware processors, cause, identifying a straddling transaction that: affected a particular data item from the chunk, started before the timestamp, and had not committed before the timestamp; and instructions which, when executed by the one or more hardware processors, cause, prior to allowing access to the in-memory copy of the chunk, storing data that indicates that the particular data item within the in-memory copy is invalid. 16. The one or more non-transitory computer-readable media of claim 15 , wherein the particular data item is from a block that includes a set of one or more data items that belong to the chunk; and wherein the data that indicates that the particular data item within the in-memory copy is invalid includes data that indicates the block is invalid. 17. The one or more non-transitory computer-readable media of claim 15 , wherein the particular data item is from a row that includes a set of one or more data items that belong to the chunk; and wherein the data that indicates that the particular data item within the in-memory copy is invalid includes data that indicates the row is invalid. 18. The one or more non-transitory computer-readable media of claim 15 , wherein the particular data item is from a block comprising: a set of one or more data items, and a set of transaction information for the set of one or more data items; and wherein identifying the straddling transaction includes scanning the set of transaction information. 19. The one or more non-transitory
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
using timestamps · CPC title
Replication mechanisms · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.