Software transactional memory: Where do we come from? What are we? Where are we going?

Nir Shavit · 2009

The transactional memory programming paradigm is gaining momentum as the approach of choice for replacing locks in concurrent programming. Combining sequences of concurrent operations into atomic transactions seems to promise a great reduction in the complexity of both programming and verification, by making parts of the code appear to be sequential without the need to program fine-grained locks. Software transactional memory offers to deliver a transactional programming environment without the need for costly modifications in processor design. However, the story of software transactional memory reminds one of garbage collection in its time: performance is improving, and the semantics are becoming clearer, yet there is still a long road ahead, a road strewn with stones below and crows hovering above, predicting its demise. This talk will try to take a sober look at software transactional memory, its history, the state of research today, and what we can expect to achieve it in the foreseeable future.

Read the paper · More papers on PaperTik