Abstract
Multiversion software transactional memory (STM) allows a transaction to read old values of a recently updated object, after which the transaction may serialize before transactions that committed earlier in physical time. This ability to "commit in the past" is particularly appealing for long-running read-only transactions, which may otherwise starve in many STM systems, because short-running peers modify data out from under them before they have a chance to finish. Most previous approaches to multiversioning have been designed as an integral part of some larger STM system, and have assumed an object-oriented, garbage-collected language. We describe, instead, how multiversioningmay be implemented on top of an almost arbitrary "wordbased" STM system. To the best of our knowledge, ours is the first work (for any kind of STM) to combine bounded space consumptionwith guaranteed wait freedom for read-only transactions (in the form presented here, it may require writers to be blocking). We make no assumptions about data or metadata layout, though we do require that the base system provide a hash function with certain ordering properties. We neither require nor interfere with automatic garbage collection. Privatization safety can be ensured-without compromisingwait freedom for readers-either by forcing privatizing writers to wait for all extant readers or by requiring that programmers explicitly identify the data being privatized. © Springer-Verlag 2013.
Cite
CITATION STYLE
Lu, L., & Scott, M. L. (2013). Generic multiversion STM. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 8205 LNCS, pp. 134–148). https://doi.org/10.1007/978-3-642-41527-2_10
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.