Transactional memories are typically speculative and rely on contention managers to cure conflicts. This work explores a complementary approach that prevents conflicts by scheduling transactions according to predictions on their access sets. We developed Shrink, a scheduler that (a) bases its prediction on the access patterns of the past transactions from the same threads, and (b) uses a novel heuristic, which we call serialization affinity, to schedule transactions with a probability proportional to the current amount of contention.
The following files are available for download: