Converting a serial transaction schedule to a parallel transaction schedule

US9594644B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9594644-B2
Application numberUS-201414491269-A
CountryUS
Kind codeB2
Filing dateSep 19, 2014
Priority dateSep 19, 2014
Publication dateMar 14, 2017
Grant dateMar 14, 2017

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.

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F9/5038Primary

    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

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 US9594644B2 cover?
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 oth…
Who is the assignee on this patent?
Abouzour Mohammed, Smirnios John, Golod Daniil, and 5 more
What technology area does this patent fall under?
Primary CPC classification G06F11/1471. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 14 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).