Cloud-based destination for block-level data replication processing
US-2024354022-A1 · Oct 24, 2024 · US
US9594644B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9594644-B2 |
| Application number | US-201414491269-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 19, 2014 |
| Priority date | Sep 19, 2014 |
| Publication date | Mar 14, 2017 |
| Grant date | Mar 14, 2017 |
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.
A method and system for transforming a serial schedule of transactions into a parallel schedule of transaction is disclosed. In one example, a computer system stores a list of data transactions in a transaction log. The computer system then reads a respective data transaction from the transaction log. The computer system determines whether the respective data transaction is dependent on any other currently pending data transaction. In accordance with a determination that the respective data transaction is not dependent on any other currently pending data transaction, the computer system applies the data changes to a reconstructed data set. In accordance with a determination that the respective data transaction is dependent on a currently pending second data transaction, the computer system delays commitment of the respective data transaction until the second data transaction has been applied to the reconstructed data set.
Opening claim text (preview).
What is claimed is: 1. A method comprising: reading each of a plurality of data transaction records from a single transaction log in a sequence in which the plurality of data transaction records were added to the transaction log, each of the plurality of data transaction records indicating a change to be applied to a section of a data set; for each respective data transaction record read from the transaction log in the sequence in which the plurality of data transaction records were added to the transaction log: selecting, based on metadata associated with the respective data transaction record, a single transaction queue from a plurality of first in, first out (FIFO) transaction queues for the respective data transaction record; and adding a pending data transaction for the respective data transaction record into the selected transaction queue; and concurrently processing the plurality of FIFO transaction queues, the processing comprising, for each associated transaction queue of the plurality of FIFO transaction queues: determining whether a next pending data transaction of the associated transaction queue is dependent on any other pending data transaction in the plurality of FIFO transaction queues based on the section of the data set indicated in the next pending data transaction; in accordance with a determination that the next pending data transaction is not dependent on any other pending data transaction in the plurality of FIFO transaction queues: applying the next pending data transaction to the data set; and removing the next pending data transaction from the associated transaction queue; and in accordance with a determination that the next pending data transaction is dependent on another pending data transaction in the plurality of FIFO transaction queues: waiting until the other pending data transaction has been applied to the data set; and after waiting until the other pending data transaction has been applied: applying the next pending data transaction to the data set; and removing the next pending data transaction from the associated transaction queue. 2. The method of claim 1 , wherein the plurality of data transaction records represent data changes made to the data set over a period of time. 3. The method of claim 1 , wherein, in each of the plurality of data transaction records, the section of the data set is indicated by a target data address. 4. The method of claim 1 , wherein the next pending data transaction is determined to be dependent on the other pending data transaction when both the next pending data transaction and the other pending data transaction are to be applied to a same section of the data set and the other pending data transaction has priority over the next pending data transaction. 5. The method of claim 1 , further comprising, for each respective data transaction record read from the transaction log: accessing a data dependency table that stores dependency data for the data set; based on the section of the data set indicated in the respective data transaction record, accessing an entry in the data dependency table that is associated with the section of the data set and determining whether the entry includes an identifier of a pending data transaction in the plurality of FIFO transaction queues; and in accordance with a determination that the entry includes an identifier of the pending data transaction in the plurality of FIFO transaction queues, updating the pending data transaction for the respective data transaction record to include dependency data. 6. A system comprising: one or more processors; memory; and one or more programs stored in the memory, the one or more programs comprising instructions that, when executed by the one or more processors, cause the system to perform operations comprising: reading each of a plurality of data transaction records from a single transaction log in a sequence in which the plurality of data transaction records were added to the transaction log, each of the plurality of data transaction records indicating a change to be applied to a section of a data set; for each respective data transaction record read from the transaction log in the sequence in which the plurality of data transaction records were added to the transaction log: selecting, based on metadata associated with the respective data transaction record, a single transaction queue from a plurality of first in, first out (FIFO) transaction queues for the respective data transaction record; and adding a pending data transaction for the respective data transaction record into the selected transaction queue; and concurrently processing the plurality of FIFO transaction queues, the processing comprising, for each associated transaction queue of the plurality of FIFO transaction queues, determining whether a next pending data transaction of the associated transaction queue is dependent on any other pending data transaction in the plurality of FIFO transaction queues based on the section of the data set indicated in the next pending data transaction; in accordance with a determination that the respective data transaction is not dependent on any other currently pending data transaction: applying the next pending data transaction to the data set; and removing the next pending data transaction from the associated transaction queue; and in accordance with a determination that the next pending data transaction is not dependent on any other pending data transaction in the plurality of FIFO transaction queues: waiting until the other pending data transaction has been applied to the data set; and after waiting until the other pending data transaction has been applied: applying the next pending data transaction to the data set; and removing the next pending data transaction from the associated transaction queue. 7. The system of claim 6 , wherein the plurality of data transaction records represent data changes made to the data set over a period of time. 8. The system of claim 6 , wherein, in each of the plurality of data transaction records, the section of the data set is indicated by a target data address. 9. The system of claim 6 , wherein the next pending data transaction is determined to be dependent on the other pending data transaction when both the next pending data transaction and the other pending data transaction are to be applied to a same section of the data set and the other pending data transaction has priority over the next pending data transaction. 10. The system of claim 6 , the operations further comprising, for each respective data transaction record read from the transaction log: accessing a data dependency table that stores dependency data for the data set; based on the section of the data set indicated in the respective data transaction record, accessing an entry in the data dependency table that is associated with the section of the data set and determining whether the entry includes an identifier of a pending data transaction in the plurality of FIFO transaction queues; and in accordance with a determination that the entry includes an identifier of the pending data transaction in the plurality of FIFO transaction queues, updating the pending data transaction for the respective data transaction record to include dependency data. 11. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a machine, the one or more programs comprising instructions that, when executed by the one or more processors, cause the machine to perform operations comprising: reading each of a plurality of data transaction records from a single transaction log in a
Concurrency control (transaction processing G06F9/466) · CPC title
in transactions (updating of structured data in databases G06F16/23) · CPC title
Keeping log of transactions for guaranteeing non-repudiation of a transaction · CPC title
involving logging of persistent data for recovery · CPC title
considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.