Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Speculative execution in a distributed file system
ACM Transactions on Computer Systems (TOCS)
A Uniform Transactional Execution Environment for Java
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Stretching transactional memory
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Transactional Memory, 2nd Edition
Transactional Memory, 2nd Edition
The 48-core SCC Processor: the Programmer's View
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Transactions as the foundation of a memory consistency model
DISC'10 Proceedings of the 24th international conference on Distributed computing
The architecture of the DecentVM: towards a decentralized virtual machine for many-core computing
Virtual Machines and Intermediate Languages
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Hi-index | 0.00 |
Synchronization in distributed systems is expensive because, in general, threads must stall to obtain a lock or to operate on volatile data. Transactional memory, on the other hand, allows speculative execution so that it can hide the latencies that are inherent to distributed systems. In this paper, we discuss how transactional memory can carry over to code that uses Java's synchronization means i.e. monitors and volatiles. We show that we can guarantee correct execution according to the Java memory model (JMM) without having to stall at synchronization points. To this end, we use a multi-version software transactional memory system that executes JMM synchronization operations asynchronously. If any such execution has violated the JMM, the transaction rolls back. As a result, only blocking operations require immediate synchronization barriers.