Snake: Control Flow Distributed Software Transactional Memory

Snake: Control Flow Distributed Software Transactional Memory
复制标题

Snake:控制流分布式软件事务内存

DOI:
10.1007/978-3-642-24550-3_19
复制
发表时间:
2011
影响因子:
1.3
通讯作者:
B. Ravindran
B. Ravindran
中科院分区:
计算机科学3区
文献类型:
--
作者:
Mohamed M. Saad;B. Ravindran

文献摘要

被引文献

相似文献

远程方法调用(RMI)是Java的远程过程调用实现,为设计基于Java技术的分布式应用程序提供了一种机制。它允许从其他Java虚拟机(可能在不同的主机上)调用方法。RMI使用基于锁的并发控制,它遭受分布式死锁,活锁,可扩展性和可组合性的挑战。我们提出了Snake-DSTM,一个分布式软件事务存储器(D-STM),它是基于RMI作为一种机制,用于处理远程调用和分布式并发控制的事务存储器,作为一种替代RMI/锁。临界区被定义为原子事务,其中对共享、本地和远程对象的读取和写入似乎瞬间生效。Snake-DSTM的新奇在于通过将控制转移到远程节点来操纵事务内存,而不是将远程节点的数据复制到事务运行的节点。事务元数据从事务上下文中分离出来,并采用动态两阶段提交协议(D2 PC)来协调参与节点之间的投票过程,以做出分布式事务提交决策。我们提出了一个简单的编程模型,使用(Java 5)注释来定义临界区和远程方法。插装用于在类加载时生成代码,这大大简化了用户空间的端代码。不需要对底层虚拟机或编译器进行任何更改。我们描述了蛇DSTM的架构和实现,并报告的实验研究比较它对竞争对手的模型,包括RMI互斥和读/写锁,分布式共享内存(DSM),和基于D-STM。我们的研究表明,Snake-DSTM在使用120个节点的系统时,在不同的工作负载上比竞争对手的性能高出12倍。
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.