Converting a serial transaction schedule to a parallel transaction schedule
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
11 Citations
13 Claims
-
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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8, 9, 10)
-
-
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 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. - View Dependent Claims (12, 13)
-
Specification