Action framework in software transactional memory
First Claim
1. A method performed by a software transactional memory (STM) system in a computer system, the method comprising:
- receiving, with an action framework in the STM system, a first action operation with a first key from a transaction in STM code, each action includes a key, state information, and a set of one or more callbacks that can be hooked to at least one of validation, commit, abort, and re-execution phases of transaction execution, said each action provides a customized implementation of the one or more callbacks;
registering, with the action framework, a first action corresponding to the first action operation with the first key, the first key allowing the transaction to subsequently perform at least one of querying and updating the first action and the first action implementing a callback with a customized implementation;
receiving, with the action framework, a second action operation with a second key from the transaction; and
in response to the second key differing from the first key, registering, with the action framework, a second action corresponding to the second action operation in a first action map with the second key and a callback implemented by the second action operation.
2 Assignments
0 Petitions
Accused Products
Abstract
A software transactional memory system implements a lightweight key-based action framework. The framework includes a set of unified application programming interfaces (APIs) exposed by an STM library that allow clients to implement actions that can be registered, queried, and updated using specific keys by transactions or transaction nests in STM code. Each action includes a key, state information, and a set of one or more callbacks that can be hooked to the validation, commit, abort, and/or re-execution phases of transaction execution. The actions extend the built-in concurrency controls of the STM system with customized control logics, support transaction nesting semantics, and enable integration with garbage collection systems.
29 Citations
19 Claims
-
1. A method performed by a software transactional memory (STM) system in a computer system, the method comprising:
-
receiving, with an action framework in the STM system, a first action operation with a first key from a transaction in STM code, each action includes a key, state information, and a set of one or more callbacks that can be hooked to at least one of validation, commit, abort, and re-execution phases of transaction execution, said each action provides a customized implementation of the one or more callbacks; registering, with the action framework, a first action corresponding to the first action operation with the first key, the first key allowing the transaction to subsequently perform at least one of querying and updating the first action and the first action implementing a callback with a customized implementation; receiving, with the action framework, a second action operation with a second key from the transaction; and in response to the second key differing from the first key, registering, with the action framework, a second action corresponding to the second action operation in a first action map with the second key and a callback implemented by the second action operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method performed by a software transactional memory (STM) system in a computer system, the method comprising:
-
receiving, with an action framework in the STM system, a first action operation with a first key from a transaction in STM code, each action includes a key, state information, and a set of one or more callbacks that can be hooked to at least one of validation, commit, abort, and re-execution phases of transaction execution, said each action provides a customized implementation of the one or more callbacks; updating, with the action framework, a first action with the first key in a first action map corresponding to the transaction; receiving, with the action framework, a second action operation with a second key from the transaction; and in response to the second key differing from the first key, registering, with the action framework, a second action corresponding to the second action operation in the first action map with the second key and a callback implemented by the second action operation. - View Dependent Claims (14, 15)
-
-
16. A computer readable storage medium, which does not include transitory propagating signals, storing computer-executable instructions that, when executed by a computer system, perform a method comprising:
-
receiving, with an action framework in a software transactional memory (STM) system in the computer system, a first action operation with a first key from a first transaction in STM code, each action includes a key, state information, and a set of one or more callbacks that can be hooked to at least one of validation, commit, abort, and re-execution phases of transaction execution, said each action provides a customized implementation of the one or more callbacks; registering, with the action framework, a first action corresponding to the first action operation with the first key if the first action has not been registered when the first action operation is received, the first action implementing a callback with a customized implementation; performing, with the action framework, at least one of querying and updating the first action in response to the first action operation if the first action has been registered when the first action operation is received; receiving, with the action framework, a second action operation with a second key from the transaction; and in response to the second key differing from the first key, registering, with the action framework, a second action corresponding to the second action operation in a first action map with the second key and a callback implemented by the second action operation. - View Dependent Claims (17, 18, 19)
-
Specification