  Transactional Memory (TM) is an approach aiming to simplify concurrent
programming by automating synchronization while maintaining efficiency. TM
usually employs the optimistic concurrency control approach, which relies on
transactions aborting and restarting if conflicts occur. However, an aborted
transaction can still leave some effects in the system that cannot be cleaned
up, if irrevocable operations are present within its code. The pessimistic
approach eliminates that problem, since it relies on deferring operations in
case of conflict rather than aborting, but hitherto pessimistic TMs suffered
from low parallelism due to the need of serializing transactions. In this
paper, we aim to introduce OptSVA, a pessimistic TM concurrency control
algorithm that ensures a high level of parallelism through a battery of
far-reaching optimizations including early release, asynchronous execution, and
the extensive use of buffering.
