Abstract

AbstractA key goal in the design of Transactional Memory (TM) systems is ensuring liveness. Local progress is a liveness condition which ensures that a process successfully completes every transaction it initiates, if it continually re-invokes it each time it aborts. In order to facilitate this, several state-of-the-art TM systems keep multiple versions of data items. However, this method can lead to high space-related overheads in the TM implementation. Therefore, it is desirable to strike a balance between the progress that a TM can provide and its practicality, while ensuring correctness. A consistency property that limits the number of previous versions a TM may rely on, is k-staleness. It is a condition derivative of snapshot isolation, in which a transaction is not allowed to access more than k previous versions of a data item. This facilitates implementations that can take advantage of multi-versioning, while at the same time, contributing to the restriction of the space overhead introduced by the TM.In this paper, we prove that no TM can ensure both local progress and k-staleness, if it is unaware of the transaction’s accesses and can only keep a bounded number of versions for each data item. KeywordsTransactional memoryProgressConsistencyImpossibility

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call