Download now Free registration required
This paper investigates feedback-directed dynamic selection between different implementations of atomic blocks. The paper initially executes atomic blocks using STM with optimistic concurrency control. At runtime, one identifies "Hot" variables that cause large numbers of transactions to abort. For these variables one selectively switches to using pessimistic concurrency control, in the hope of deferring transactions until they will be able to run to completion. This trades off a reduction in single-threaded speed (since pessimistic concurrency control is not as streamlined as the optimistic implementation), against a reduced amount of wasted work in aborted transactions. The paper describes the implementation in the Haskell programming language, and examines its performance with a range of micro-benchmarks and larger programs.
- Format: PDF
- Size: 312.8 KB