Software Transactional Memory Should Not Be Obstruction-Free

Much previous work on Software Transactional Memory has gone to great lengths to be “obstruction-free” — meaning that a transaction is guaranteed to make progress when all other transactions are suspended. In this paper we argue that obstruction-freedom is not an important property for software transactional memory, and demonstrate that, if we are prepared to drop the goal of obstruction-freedom, software transactional memory can be made significantly faster.