Nested transactions: an approach to reliable distributed computing
Nested transactions: an approach to reliable distributed computing
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
The serializability of concurrent database updates
Journal of the ACM (JACM)
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Architectural Semantics for Practical Transactional Memory
Proceedings of the 33rd annual international symposium on Computer Architecture
Memory models for open-nested transactions
Proceedings of the 2006 workshop on Memory system performance and correctness
Nested transactional memory: model and architecture sketches
Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
Transactional collection classes
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Open nesting in software transactional memory
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hardware transactional memory: A high performance parallel programming model
Journal of Systems Architecture: the EUROMICRO Journal
Hi-index | 0.00 |
Researchers in transactional memory (TM) have proposed open-nested transactions for increasing concurrency. The idea is to ignore "low-level" memory operations of the open-nested transaction when detecting conflicts for its parent transaction, and instead perform abstract concurrency control for the "high-level" operation that nested transaction represents. Unfortunately, because the TM runtime is unaware of the different levels of memory, an unconstrained use of open-nested commits can lead to anomalous program behavior. We propose ownership-aware transactional memory (OATM) which explicitly incorporates the notion of modules into the TM system, and requires that transactions and data be associated with specific transactional modules or Xmodules. When a transaction in the OATM commits, the TM system uses this information about Xmodules and commits a piece of data differently depending on whether the current Xmodule owns the data or not. We call this commit mechanism ownership-aware commit, and it is a hybrid between an open-nested and closed-nested commit. Moreover, we give a set of precise constraints on interactions and sharing of data among the Xmodules based on familiar notions of abstractions. We prove that OATM has has clean memory-level semantics and can guarantee serializability by modules, which is an adaptation of multilevel serializability from databases to TM. Finally, we prove that if transactions in the process of aborting obey restrictions on their memory footprint, the OATM is free from semantic deadlock.