What do high-level memory models mean for transactions?

D Grossman, J Manson, W Pugh - Proceedings of the 2006 workshop on …, 2006 - dl.acm.org
D Grossman, J Manson, W Pugh
Proceedings of the 2006 workshop on Memory system performance and correctness, 2006dl.acm.org
Many people have proposed adding transactions, or atomic blocks, to type-safe high-level
programming languages. However, researchers have not considered the semantics of
transactions with respect to a memory model weaker than sequential consistency. The
details of such semantics are more subtle than many people realize, and the interaction
between compiler transformations and transactions could produce behaviors that many
people find surprising. A language's memory model, which determines these interactions …
Many people have proposed adding transactions, or atomic blocks, to type-safe high-level programming languages. However, researchers have not considered the semantics of transactions with respect to a memory model weaker than sequential consistency. The details of such semantics are more subtle than many people realize, and the interaction between compiler transformations and transactions could produce behaviors that many people find surprising. A language's memory model, which determines these interactions, must clearly indicate which behaviors are legal, and which are not. These design decisions affect both the idioms that are useful for designing concurrent software and the compiler transformations that are legal within the language.Cases where semantics are more subtle than people expect include the actual meaning of both strong and weak atomicity; correct idioms for thread safe lazy initialization; compiler transformations of transactions that touch only thread local memory; and whether there is a well-defined notion for transactions that corresponds to the notion of correct and incorrect use of synchronization in Java. Open questions for a high-level memory-model that includes transactions involve both issues of isolation and ordering.
ACM Digital Library