Methods and apparatus to implement parallel transactions
First Claim
1. A method comprising:
- maintaining an environment to execute multiple processing threads in parallel; and
during execution of the multiple processing threads, switching a manner of the execution between transactional memory usage and non-transactional memory usage of a region of respective shared data.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system includes multiple processing threads that execute in parallel. The multiple processing threads have access to a global environment including different types of metadata enabling the processing threads to carry out simultaneous execution depending on a currently selected type of lock mode. A mode controller monitoring the processing threads initiates switching from one type of lock mode to another depending on current operating conditions such as an amount of contention amongst the multiple processing threads to modify the shared data. The mode controller can switch from one lock mode another regardless of whether any of the multiple processes are in the midst of executing a respective transaction. A most efficient lock mode can be selected to carry out the parallel transactions. In certain cases, switching of lock modes causes one or more of the processing threads to abort and retry a respective transaction according to the new mode.
106 Citations
20 Claims
-
1. A method comprising:
-
maintaining an environment to execute multiple processing threads in parallel; and
during execution of the multiple processing threads, switching a manner of the execution between transactional memory usage and non-transactional memory usage of a region of respective shared data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer readable media encoded with a computer program including:
-
instructions to initiate execution of at least one processing thread of multiple processing threads executed in parallel; and
instructions to switch a manner of the execution of the at least one processing thread between transactional memory usage and non-transactional memory usage of a region of shared data. - View Dependent Claims (14, 15, 16)
-
-
17. A computer system including:
-
multiple processing threads executing in parallel; and
a global environment accessible by the multiple processing threads, the global environment including i) shared data utilized by the multiple processing threads, ii) mode setting information indicating a current lock mode for executing the multiple processing threads in parallel, the current lock mode being one of a first lock mode for implementing multi-lock based transactional memory usage and a second lock mode for implementing single-lock based memory usage of the shared data. - View Dependent Claims (18, 19, 20)
-
Specification