On the correctness of transactional memory
read more
Citations
NOrec: streamlining STM by abolishing ownership records
Transactional Memory, 2nd Edition
No compromises: distributed transactions with consistency, availability, and performance
Transactional Memory Architecture and Implementation for IBM System Z
Stretching transactional memory
References
Transaction Processing: Concepts and Techniques
Linearizability: a correctness condition for concurrent objects
Transactional memory: architectural support for lock-free data structures
Software transactional memory
A critique of ANSI SQL isolation levels
Related Papers (5)
Frequently Asked Questions (14)
Q2. What future works have the authors mentioned in the paper "Stretching transactional memory" ?
Further experiments might be needed in this direction. Two main directions along which the authors plan to improve the semantical guarantees of SwissTM are: ( 1 ) adding compiler support, and ( 2 ) making SwissTM privatizationsafe. There exists a number of STM C/C++ compilers that have open interfaces supporting different STM libraries ( e. g. [ 14, 29 ] ) and the authors plan to integrate SwissTM with one of them. While this algorithm is simple, it would probably significantly impact performance of SwissTM [ 42 ] and the authors plan to investigate other options, possibly using techniques similar to [ 28 ] or [ 25 ].
Q3. What are the potential targets of TMs?
A possible target of TMs are large applications such as business software or video games: the size of these applications make them ideal candidates to benefit from emerging multi-core architectures.
Q4. What is the motivation of this work?
The motivation of this work is to explore the ability of software mechanisms to effectively support mixed workloads consisting of small and large transactions, as well as possibly complex data structures.
Q5. What is the way to prevent a transaction from re-executing?
It might seem beneficial to make transactions restart as soon as possible after conflicts that force them to rollback, as waiting just decreases the reaction time before the transaction re-executes.
Q6. What are the main directions of the improvement of SwissTM?
Two main directions along which the authors plan to improve the semantical guarantees of SwissTM are: (1) adding compiler support, and (2) making SwissTM privatizationsafe.
Q7. What is the role of T in detecting conflicts?
When T is invisible, T has the sole responsibility of detecting conflicts on x with transactions that write x concurrently, i.e., validating its read set.
Q8. What is the main reason for SwissTM outperforming other STMs?
SwissTM significantly outperforms all other STMs for both read-dominated and read-write workloads, while also achieving superior scalability.
Q9. How do the authors map memory word m to a lock table entry?
To map memory word m to a lock table entry, the authors take the address a of m, shift it to the right by 4 (it would be 5 with 64-bit words).
Q10. What are the main contributions of this paper?
To summarize, the main contributions of this paper are (1) the design and implementation of an STM that performs particularly well with large-scale complex transactional workloads while having good performance in small-scale ones, and (2) an extensive experimental evaluation of STM strategies and implementations from the perspective of complex applications with mixed workloads.
Q11. What are the advantages of using microbenchmarks?
Short and simple transactions of microbenchmarks are good for testing mechanics of STM itself and comparing low-level details of various implementations.
Q12. What are the main characteristics of the STM experiments?
So far, however, most STM experiments have been performed using benchmarks characterized by small transactions, simple and uniform data structures, or regular data access patterns.
Q13. What is the impact of using different lock granularities on performance?
It is interesting to note here that, while using different lock granularities does impact performance, the impact of using coarser lock granularities is not significant enough to prevent SwissTM from scaling (e.g. due to increased number of false conflicts).
Q14. Why does the lazy conflict detection STM react so slowly to write/write conflicts?
Because of this, lazy conflict detection STMs react too slowly to write/write conflicts (which are good signs that transactions cannot proceed in parallel) and results in transactions performing work that has to be rolled back later.