Boosted transactions offer an attractive method that enables programmers to create larger transactions that scale well and offer deadlock-free guarantees. However, as boosted transactions get larger, they become more susceptible to conflicts and aborts. We describe a linear-time algorithm to detect transactions that cannot make progress, which transactions need to be aborted, and when. The algorithm guarantees zero false positives with minimal aborts. Our proposals, as implemented in DSTM2, increase the transactional throughput of the system, often by more than 30%. Categories and Subject Descriptors D [1]: 3—Concurrent Programming– Parallel Programming; D [4]: 1—Process Management– Synchronization; Threads; Concurrency General Terms Algorithms, Performance Keywords Concurrency, parallel programming, transactional memory, deadlocks, deadlock-detection
Chinmay Eishan Kulkarni, Osman S. Unsal, Adri&aacu