PROCESSING SERIALIZED TRANSACTIONS IN PARALLEL WHILE PRESERVING TRANSACTION INTEGRITY
First Claim
1. A method for processing serialized transactions in parallel while preserving:
- transaction integrity, the method comprising;
receiving a transaction from a set of serialized transactions, the transaction comprising at least two keys;
accessing a serialization-independent key (“
SI-Key”
) and a serialization-dependent key (“
SD-Key”
) from the transaction;
assigning the transaction to an execution group based on the value for the SI-Key, the execution group configured to hold one or more transactions; and
scheduling the one or more transactions in the execution group for execution in an order defined by each SD-Key value, the execution group configured to execute in parallel with one or more additional execution groups.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, and apparatus are disclosed for processing serialized transactions in parallel while preserving transaction integrity. The method includes receiving a transaction comprising at least two keys and accessing a serialization-independent key (“SI-Key”) and a serialization-dependent key (“SD-Key”) from the transaction. A value for the SI-Key identifies the transaction as independent of transactions having a different value for the SI-Key. Furthermore, a value for the SD-Key governs a transaction execution order for each transaction having a SI-Key value that matches the SI-Key value associated with the SD-Key value. The method also includes assigning the transaction to an execution group based on a value for the SI-Key. The method also includes scheduling the one or more transactions in the execution group in an order defined by the SD-Key. The execution group may execute in parallel with one or more additional execution groups.
37 Citations
20 Claims
-
1. A method for processing serialized transactions in parallel while preserving:
- transaction integrity, the method comprising;
receiving a transaction from a set of serialized transactions, the transaction comprising at least two keys; accessing a serialization-independent key (“
SI-Key”
) and a serialization-dependent key (“
SD-Key”
) from the transaction;assigning the transaction to an execution group based on the value for the SI-Key, the execution group configured to hold one or more transactions; and scheduling the one or more transactions in the execution group for execution in an order defined by each SD-Key value, the execution group configured to execute in parallel with one or more additional execution groups. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- transaction integrity, the method comprising;
-
9. An apparatus for processing serialized transactions in parallel while preserving transaction integrity, the apparatus comprising:
-
a receiving module configured to receive a plurality of serialized transactions, each transaction comprising at least two keys; an accessing module configured to access a serialization-independent key (“
SI-Key”
) and a serialization-dependent key (“
SD-Key”
) from the plurality of transactions;an assignment module configured to assign each transaction to one of one or more execution groups based on the value for the SI-Key in each transaction, each execution group configured to hold one or more transactions; and a scheduling module configured to schedule the one or more transactions in each execution group for execution in an order defined by each SD-Key value, each execution group configured to execute in parallel with one or more additional execution groups. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system for processing serialized transactions in parallel while preserving transaction integrity, the system comprising:
-
an input device; a memory comprising; a receiving module configured to receive a plurality of serialized transactions, each transaction comprising at least two keys; an accessing module configured to access a serialization-independent key (“
SI-Key”
) and a serialization-dependent key (“
SD-Key”
) from the plurality of transactions;an assignment module configured to assign each transaction to one of one or more execution groups based on the value for the SI-Key in each transaction, each execution group configured to hold one or more transactions, the one or more execution groups assigned to a plurality of processors for processing; a sorting module configured to sort a plurality of transactions in each execution group based on the SD-Key; a scheduling module configured to schedule the one or more transactions for execution in one or more execution groups in an order defined by each SD-Key value, each execution group configured to execute in parallel with one or more additional execution groups; a plurality of processors configured to process in parallel; and a bus coupling the input device, the memory, and the plurality of processors. - View Dependent Claims (17, 18, 19, 20)
-
Specification