Using transactional memory with early release to implement non-blocking dynamic-sized data structure
AssigneeOracle America, Inc.
InventorsMark S. Moir, Maurice Herlihy
Life of this patent
Estimating the term…
Loading patent…
AssigneeOracle America, Inc.
InventorsMark S. Moir, Maurice Herlihy
Estimating the term…
By exploiting an early release facility that may be provided by certain transactional memory designs, we facilitate transaction software constructs that operate on dynamically-sized data structures and/or other data structures for which traversal may be data dependent. Absent exploitation of such a facility, the act of traversing the data structure would typically introduce corresponding locations into the read set of a transaction, and a subsequent modification of any of the previously traversed locations would result in abortion of the traversing transaction. By exploiting an early release facility such as described herein, a transaction may release the locations that it has previously read in traversal and thereby eliminate such read locations as a source of conflict with other concurrently executing computations or transactions. In this way, concurrency may be enhanced while still employing a conceptually simple and convenient coordination facility.
A method of operating a computer, comprising:
A computer readable storage medium, storing program instructions computer-executable to implement at least one transaction that introduces one or more transactional memory locations into its read set and releases one or more of the introduced transactional memory locations prior to any commitment of the transaction, wherein the releasing leaves at least one transactional memory location in at least one of the read set and a write set of the transaction;
A computer readable storage medium, storing program instructions computer-executable to implement at least one transaction that, when executed on a processor that accesses a transactional memory, introduces plural noncontiguous memory locations into a read set,
A method of making a computer program product for execution in a computer system that supports transactional memory, the method comprising:
An apparatus comprising:
Dependencies are inferred from the claim text.