Safely rolling back transactions in a transactional memory system with concurrent readers
First Claim
1. In a data processing system having at least one CPU, a memory operatively coupled to said CPU, said memory including a storage medium tangibly embodying data that is subject to concurrent access by a data updater that updates said data and a data reader that reads said data, a method for safely rolling back transactions implemented by said updater to update said data using a transactional memory technique as said reader reads said updated data while said transactions are uncommitted and subject to roll back, comprising:
- said updater executing on said at least one CPU to perform a data update on said data to produce updated data using a transactional memory technique wherein said data update is implemented as a transaction in which said updated data is initially uncommitted data due to said transaction being subject to roll back in the event of said transaction aborting, said uncommitted data comprising a transaction write set representing shared memory locations that are written to during said transaction;
said reader executing on said at least one CPU to perform a data read on said uncommitted data after said transaction has started and prior to said transaction either committing or aborting; and
upon an abort of said transaction, deferring reclamation of said memory locations used by said uncommitted data until a grace period has elapsed after which said reader can no longer be referencing said uncommitted data.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for safely rolling back transactional memory transactions without impacting concurrent readers of the uncommitted transaction data. An updater uses a transactional memory technique to perform an data update on data that is shared with a reader. The update is implemented as a transaction in which the updated data is initially uncommitted due to the transaction being subject to roll back. The reader is allowed to perform a data read on the uncommitted data during the transaction. Upon a rollback of the transaction, reclamation of memory locations used by the uncommitted data is deferred until a grace period has elapsed after which the reader can no longer be referencing the uncommitted data.
-
Citations
20 Claims
-
1. In a data processing system having at least one CPU, a memory operatively coupled to said CPU, said memory including a storage medium tangibly embodying data that is subject to concurrent access by a data updater that updates said data and a data reader that reads said data, a method for safely rolling back transactions implemented by said updater to update said data using a transactional memory technique as said reader reads said updated data while said transactions are uncommitted and subject to roll back, comprising:
-
said updater executing on said at least one CPU to perform a data update on said data to produce updated data using a transactional memory technique wherein said data update is implemented as a transaction in which said updated data is initially uncommitted data due to said transaction being subject to roll back in the event of said transaction aborting, said uncommitted data comprising a transaction write set representing shared memory locations that are written to during said transaction; said reader executing on said at least one CPU to perform a data read on said uncommitted data after said transaction has started and prior to said transaction either committing or aborting; and upon an abort of said transaction, deferring reclamation of said memory locations used by said uncommitted data until a grace period has elapsed after which said reader can no longer be referencing said uncommitted data. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a CPU; a memory operatively coupled to said CPU, said memory including a storage medium tangibly embodying data that is subject to concurrent access by a data updater that updates said data and a data reader that reads said data; said memory further tangibly embodying a program of instructions executable by said CPU to perform operations for safely rolling back transactions implemented by said updater to update said data using a transactional memory technique as said reader reads said updated data while said transactions are uncommitted and subject to roll back, comprising; said updater executing on said at least one CPU to perform a data update on said data to produce updated data using a transactional memory technique wherein said data update is implemented as a transaction in which said updated data is initially uncommitted data due to said transaction being subject to roll back in the event of said transaction aborting, said uncommitted data comprising a transaction write set representing shared memory locations that are written to during said transaction; said reader executing on said at least one CPU to perform a data read on said uncommitted data after said transaction has started and prior to said transaction either committing or aborting; and upon an abort of said transaction, deferring reclamation of memory locations used by said uncommitted data until a grace period has elapsed after which said reader can no longer be referencing said uncommitted data. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product, comprising:
-
one or more non-transitory computer-readable storage media; program instructions stored on said one or more storage media for programming a CPU that is operatively coupled to a memory, said memory including a storage medium tangibly embodying data that is subject to concurrent access by a data updater that updates said data and a data reader that reads said data, said program instructions programming said CPU to perform operations, comprising; said updater executing on said at least one CPU to perform a data update on said data to produce updated data using a transactional memory technique wherein said data update is implemented as a transaction in which said updated data is initially uncommitted data due to said transaction being subject to roll back in the event of said transaction aborting, said uncommitted data comprising a transaction write set representing shared memory locations that are written to during said transaction; said reader executing on said at least one CPU to perform a data read on said uncommitted data after said transaction has started and prior to said transaction either committing or aborting; and upon an abort of said transaction, deferring reclamation of memory locations used by said uncommitted data until a grace period has elapsed after which said reader can no longer be referencing said uncommitted data. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. In a data processing system having at least one CPU, a memory operatively coupled to said CPU that includes a storage medium tangibly embodying data that is subject to concurrent access by a data updater that updates said data and a data reader that reads said data, a method for safely rolling back transactions implemented by said updater to update said data using a transactional memory technique as said reader reads said updated data while said transactions are uncommitted and subject to roll back, comprising:
-
said updater executing on said at least one CPU to perform a data update on said data to produce updated data using a transactional memory technique wherein said data update is implemented as a transaction in which said updated data is initially uncommitted data due to said transaction being subject to roll back in the event of said transaction aborting, said uncommitted data comprising a transaction write set representing shared memory locations that are written to during said transaction; said transactional memory technique being one of a hardware transactional memory technique or a software transactional memory technique; said reader executing on said at least one CPU to perform a data read on said uncommitted data after said transaction has started and prior to said transaction either committing or aborting; said reader being a read-copy update reader that uses read-copy update primitives to read said uncommitted data; and upon an abort of said transaction, deferring reclamation of memory locations used by said uncommitted data until a grace period has elapsed after which said reader can no longer be referencing said uncommitted data; and said deferred reclamation of memory locations used by said uncommitted data being performed using a read-copy update deferred reclamation technique. - View Dependent Claims (20)
-
Specification