Methods and apparatus to implement parallel transactions
First Claim
1. A method comprising:
- accessing globally accessible shared data to execute a corresponding transaction of multiple transactions being executed in parallel with each other, the globally accessible shared data accessible by each of the multiple transactions;
accessing a globally accessible version information variable utilized by each of multiple processes executing the multiple transactions to maintain version information associated with the globally accessible shared data, the globally accessible version information variable accessible by each of the multiple transactions; and
after completion of the corresponding transaction, initiating at least one of mode A and mode B, wherein mode A includes;
for the corresponding transaction, storing a current value of the globally accessible version information regardless of whether an associated attempt by the corresponding transaction to modify the globally accessible version information variable was successful, the current value used by the corresponding transaction for maintaining the version information associated with the globally accessible shared data; and
wherein mode B includes;
for the corresponding transaction, retrieving a current value of the globally accessible version information variable for maintaining the version information associated with the globally accessible shared data.
2 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure describes a unique way for each of multiple processes to operate in parallel and use the same shared data without causing corruption to the shared data. For example, during a commit phase, a corresponding transaction can attempt to increment a globally accessible version information variable and store a current value of the globally accessible version information variable for updating version information associated with modified data regardless of whether an associated attempt by the corresponding transaction to modify the globally accessible version information variable was successful. As an alternative mode, a corresponding transaction can merely read and store a current value of the globally accessible version information variable without attempting to update the globally accessible version information variable before such use. In yet another application, a parallel processing environment implements a combination of both aforementioned modes depending on a self-abort rate of the transaction.
-
Citations
20 Claims
-
1. A method comprising:
-
accessing globally accessible shared data to execute a corresponding transaction of multiple transactions being executed in parallel with each other, the globally accessible shared data accessible by each of the multiple transactions; accessing a globally accessible version information variable utilized by each of multiple processes executing the multiple transactions to maintain version information associated with the globally accessible shared data, the globally accessible version information variable accessible by each of the multiple transactions; and after completion of the corresponding transaction, initiating at least one of mode A and mode B, wherein mode A includes; for the corresponding transaction, storing a current value of the globally accessible version information regardless of whether an associated attempt by the corresponding transaction to modify the globally accessible version information variable was successful, the current value used by the corresponding transaction for maintaining the version information associated with the globally accessible shared data; and wherein mode B includes; for the corresponding transaction, retrieving a current value of the globally accessible version information variable for maintaining the version information associated with the globally accessible shared data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system comprising:
-
a processor; a memory unit that stores instructions associated with an application executed by the processor; and an interconnect coupling the processor and the memory unit, enabling the computer system to execute the application and perform operations of; accessing globally accessible shared data to execute a corresponding transaction of multiple transactions being executed in parallel with each other, the globally accessible shared data accessible by each of the multiple transactions; accessing a globally accessible version information variable utilized by each of multiple processes executing the multiple transactions to maintain version information associated with the globally accessible shared data, the globally accessible version information variable accessible by each of the multiple transactions; and after completion of the corresponding transaction, initiating at least one of mode A and mode B, wherein mode A includes; for the corresponding transaction, storing a current value of the globally accessible version information regardless of whether an associated attempt by the corresponding transaction to modify the globally accessible version information variable was successful, the current value used by the corresponding transaction for maintaining the version information associated with the globally accessible shared data; and wherein mode B includes; for the corresponding transaction, retrieving a current value of the globally accessible version information variable for maintaining the version information associated with the globally accessible shared data. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A computer program product including a computer-readable medium having instructions stored thereon for processing data information, such that the instructions, when carried out by a processing device, enable the processing device to:
-
access globally accessible shared data to execute a corresponding transaction of multiple transactions being executed in parallel with each other, the globally accessible shared data accessible by each of the multiple transactions; access a globally accessible version information variable utilized by each of multiple processes executing the multiple transactions to maintain version information associated with the globally accessible shared data, the globally accessible version information variable accessible by each of the multiple transactions; and after completion of the corresponding transaction, initiating at least one of mode A and mode B, wherein mode A includes; for the corresponding transaction, storing a current value of the globally accessible version information regardless of whether an associated attempt by the corresponding transaction to modify the globally accessible version information variable was successful, the current value used by the corresponding transaction for maintaining the version information associated with the globally accessible shared data; and wherein mode B includes; for the corresponding transaction, retrieving a current value of the globally accessible version information variable for maintaining the version information associated with the globally accessible shared data.
-
Specification