Data access management
US-9032163-B2 · May 12, 2015 · US
US9990392B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9990392-B2 |
| Application number | US-201514680675-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 7, 2015 |
| Priority date | Apr 7, 2015 |
| Publication date | Jun 5, 2018 |
| Grant date | Jun 5, 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.
Disclosed herein are system, method, and computer program product embodiments for distributed transaction processing in massively parallel processing (MPP) databases. An embodiment operates by receiving a transaction including a read timestamp corresponding to a version of data of a database associated with the query. It is determined whether a locally stored portion of the data of the database has a local timestamp that is equivalent to or after the read timestamp. A lock may be requested, and if received, the data is updated.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: receiving a transaction including a read timestamp corresponding to a version of data of a database associated with the transaction, wherein the data of the database is stored across a plurality of storage nodes; determining whether a locally stored portion of the data of the database has a local timestamp that is equivalent to or after the read timestamp, updating the locally stored portion of data with modifications that occurred to the locally stored portion of data between the local timestamp and the read timestamp based on the determination that the local timestamp is prior to the read timestamp; reading the data of the locally stored portion; executing the transaction, wherein the execution comprises caching modifications to the data of the database to be performed as a result of the executing; determining that the data of the database to be modified as a result of the executing did not change during the executing; and requesting a lock on the data of the database to be modified as a result of the executing, wherein if the lock is received, updating the data of the database based on the cached modifications, and wherein if the lock is not received, aborting the updating of the data of the database based on the cached modifications. 2. The method of claim 1 , wherein the database has a plurality of active versions of the data of the database. 3. The method of claim 1 , wherein the transaction is executed by a plurality of compute nodes having read-only access to the data of the database until the lock is received. 4. The method of claim 1 , wherein a distributed query processor allocates portions of the transaction to the plurality of compute nodes and assembles results from the plurality of compute nodes. 5. The method of claim 1 , wherein each storage node includes a portion of a logical log of the database indicating current data of the database. 6. The method of claim 5 , wherein the requesting a lock comprises: receiving the lock; and receiving a sequence number corresponding to a location in the logical log. 7. The method of claim 6 , wherein the updating the data of the database comprises: writing the cached modifications across a plurality of the storage nodes simultaneously; and updating the location in the logical log upon completion of the writing. 8. The method of claim 1 , wherein the updating the locally stored portion comprises: requesting from the storage nodes the modifications that occurred between the local timestamp and the read timestamp. 9. The method of claim 1 , wherein the updating the locally stored portion comprises: requesting from the storage nodes additional data that was not locally stored but is necessary to process the query; and updating the locally stored portion to include the additional data. 10. The method of claim 1 , wherein the determining whether a locally stored portion of the data of the database has a local timestamp that is equivalent to or after the read timestamp comprises: determining that the local timestamp that is older than the read timestamp but within a threshold for staleness of data associated with the query; and executing the query without requesting updated data. 11. The method of claim 1 , further comprising sending a signal that the transaction has completed and the lock is to be released if the lock was received. 12. The method of claim 1 , wherein the received transaction is a write transaction, and wherein the determining comprises: determining based on a distributed log that the locally stored portion of the data was not updated between the local timestamp and the read timestamp; and updating the local timestamp to the read timestamp. 13. The method of claim 1 , further comprising: executing, across two or more of the storage nodes in parallel, a plurality of transactions to modify data. 14. A system, comprising: a memory; and at least one processor coupled to the memory and configured to: receive a transaction including a read timestamp corresponding to a version of data of a database associated with the transaction, wherein the data of the database is stored across a plurality of storage nodes; determine whether a locally stored portion of the data of the database has a local timestamp that is equivalent to or after the read timestamp, update the locally stored portion of data with modifications that occurred to the locally stored portion of data between the local timestamp and the read timestamp based on the determination that the local timestamp is prior to the read timestamp; read the data of the locally stored portion; execute the transaction, wherein the execution comprises caching modifications to the data of the database to be performed as a result of the executing; determine that the data of the database to be modified as a result of the executing did not change during the executing; and request a lock on the data of the database to be modified as a result of the executing, wherein if the lock is received, updating the data of the database based on the cached modifications, and wherein if the lock is not received, aborting the updating of the data of the database based on the cached modifications. 15. The system of claim 14 , wherein a distributed transaction processor allocates portions of the transaction to the plurality of compute nodes and assembles results from the plurality of compute nodes. 16. The system of claim 14 , wherein each storage node includes a portion of a logical log of the database indicating current data of the database. 17. The system of claim 16 , wherein the request of the lock comprises: receiving the lock; and receiving a sequence number corresponding to a location in the logical log. 18. The system of claim 17 , wherein the update to the data of the database comprises: writing the cached modifications across a plurality of the storage nodes simultaneously; and updating the location in the logical log upon completion of the writing. 19. The system of claim 14 , wherein the update to the locally stored portion comprises: requesting from the storage nodes the modifications that occurred between the local timestamp and the read timestamp. 20. A tangible computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising: receiving a transaction including a read timestamp corresponding to a version of data of a database associated with the transaction, wherein the data of the database is stored across a plurality of storage nodes; determining whether a locally stored portion of the data of the database has a local timestamp that is equivalent to or after the read timestamp, updating the locally stored portion of data with modifications that occurred to the locally stored portion of data between the local timestamp and the read timestamp based on the determination that the local timestamp is prior to the read timestamp; reading the data of the locally stored portion; executing the transaction, wherein the execution comprises caching modifications to the data of the database to be performed as a result of the executing; determining that the data of the database to be modified as a result of the executing did not change during the executing; and requesting a lock on the data of the database to be modified as a result of the executing, wherein if the lock is rece
Updates performed during online database operations; commit processing · CPC title
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.