Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Jini Specification
Design and Performance Analysis of a Distributed Java Virtual Machine
IEEE Transactions on Parallel and Distributed Systems
Characterizing the Performance of Algorithms for Lock-Free Objects
IEEE Transactions on Computers
The Dynamic Two Phase Commitment (D2PC) Protocol
ICDT '95 Proceedings of the 5th International Conference on Database Theory
The Arrow Distributed Directory Protocol
DISC '98 Proceedings of the 12th International Symposium on Distributed Computing
A Bytecode Translator for Distributed Execution of ``Legacy'' Java Software
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
J-Orchestra: Automatic Java Application Partitioning
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
An Architectural Overview of Alpha: A Real-Time, Distributed Kernel
Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures
JESSICA2: A Distributed Java Virtual Machine with Transparent Thread Migration Support
CLUSTER '02 Proceedings of the IEEE International Conference on Cluster Computing
ARGUS REFERENCE MANUAL
NAMING AND SYNCHRONIZATION IN A DECENTRALIZED COMPUTER SYSTEM
NAMING AND SYNCHRONIZATION IN A DECENTRALIZED COMPUTER SYSTEM
Advanced contention management for dynamic software transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
A flexible framework for implementing software transactional memory
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Versioned boxes as the basis for memory transactions
Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
Software transactional memory for large scale clusters
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
DiSTM: A Software Transactional Memory Framework for Clusters
ICPP '08 Proceedings of the 2008 37th International Conference on Parallel Processing
The semantics of progress in lock-based transactional memory
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
D2STM: Dependable Distributed Software Transactional Memory
PRDC '09 Proceedings of the 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing
Brief Announcement: Relay: A Cache-Coherence Protocol for Distributed Transactional Memory
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
Cloud-TM: harnessing the cloud with distributed transactional memories
ACM SIGOPS Operating Systems Review
HyFlow: a high performance distributed software transactional memory framework
Proceedings of the 20th international symposium on High performance distributed computing
Distributed transactional memory for metric-space networks
DISC'05 Proceedings of the 19th international conference on Distributed Computing
TM2C: a software transactional memory for many-cores
Proceedings of the 7th ACM european conference on Computer Systems
Hi-index | 0.00 |
Remote Method Invocation (RMI), Java's remote procedure call implementation, provides a mechanism for designing distributed Java technology-based applications. It allows methods to be invoked from other Java virtual machines, possibly at different hosts. RMI uses lockbased concurrency control, which suffers from distributed deadlocks, livelocks, and scalability and composability challenges.We present Snake-DSTM, a distributed software transactional memory (D-STM) that is based on the RMI as a mechanism for handling remote calls and transactional memory for distributed concurrency control, as an alternative to RMI/locks. Critical sections are defined as atomic transactions, in which reads and writes to shared, local and remote objects appear to take effect instantaneously. The novelty of Snake-DSTM is in manipulating transactional memory by moving control to remote nodes, rather than remote nodes' data being copied to the node at which the transaction runs. Transaction metadata is detached from the transactional context, and the dynamic two phase commitment protocol (D2PC) is employed to coordinate the voting process among participating nodes toward making distributed transactional commit decisions. We propose a simple programming model using (Java 5) annotations to define critical sections and remote methods. Instrumentation is used to generate code at class-load time, which significantly simplifies user-space end code. No changes are needed to the underlying virtual machine or compiler. We describe Snake-DSTM's architecture and implementation, and report on experimental studies comparing it against competing models including RMI with mutual exclusion and read/write locks, distributed shared memory (DSM), and dataflow-based D-STM. Our studies show that Snake-DSTM outperforms competitors by up to 12× on different workloads using a 120-node system.