It has been discovered that globally indicating read-write conflicts and
semi-transparent read sharing in a transactional memory space allows for
a more expedient validation. Without being aware of particular
transactions, a writing transaction can determine that a read-write
conflict will occur with some transaction that has read one or more
memory locations to be modified by the writing transaction. With
semi-transparent reading, reading transactions can validate quickly. If a
read-write conflict has not occurred since a reading transaction began
(or since the last validation), then the previous reads are valid.
Otherwise, the reading transaction investigates each memory location or
ownership record to determine if a read-write conflict affected the
investigating transaction.