Optimistic concurrency for clusters via speculative locking

Optimistic concurrency for clusters via speculative locking
复制标题

通过推测锁定实现集群的乐观并发

DOI:
10.1145/1534530.1534532
复制
发表时间:
2009
期刊:
--
影响因子:
--
通讯作者:
Tal Zamir
Tal Zamir
中科院分区:
--
文献类型:
--
作者:
M. Factor;A. Schuster;K. Shagin;Tal Zamir

文献摘要

被引文献

相似文献

事务内存和推测锁定是乐观并发控制机制,其目标是在减少编程工作量的同时实现高度并发执行。这两种方法的核心思想是相同的:乐观地执行关键代码段,确定是否存在数据冲突,并在验证失败时回滚。在共享内存的多处理器上,transmittance内存被广泛认为比基于锁的同步具有优势。最近的几项工作建议在分布式环境中使用事务内存。然而,由于这些方案是从传统的共享内存设计空间中衍生出来的,因此对于这种设置来说似乎不够“乐观”。每个线程在继续下一个事务之前必须验证当前事务。因此,阻塞远程请求(其目的是检测/避免数据冲突)被放置在关键路径上,从而延迟执行。 在本文中,我们调查是否在上述缺点的推测锁定可以是一个合适的替代方案,在分布式环境中的事务内存。我们提出了一种新的分布式推测锁定方案,并比较其性能现有的分布式事务存储器协议。尽管在概念上与事务内存相似,但推测性锁定的分布式实现设法将通信与计算重叠。它允许线程同时推测性地获取多个锁,这类似于在验证前一个事务之前执行一个事务。
Transactional memory and speculative locking are optimistic concurrency control mechanisms, whose goal is to enable highly concurrent execution while reducing the programming effort. The same basic idea lies in the heart of both methods: optimistically execute a critical code segment, determine whether there have been data conflicts and roll back in case validation fails. Transactional memory is widely considered to have advantages over lock-based synchronization on shared memory multiprocessors. Several recent works suggest employment of transactional memory in a distributed environment. However, being derived from traditional shared-memory design space, these schemes seem to be not "optimistic" enough for this setting. Each thread must validate the current transaction before proceeding to the next. Hence, blocking remote requests whose purpose is to detect/avoid data conflicts are placed on the critical path and thus delay execution. In this paper, we investigate whether in light of the above shortcomings speculative locking can be a suitable alternative for transactional memory in a distributed environment. We present a novel distributed speculative locking scheme and compare its properties to the existing distributed transactional memory protocols. Despite the conceptual similarity to transactional memory, the distributed implementation of speculative locking manages to overlap communication with computation. It allows a thread to speculatively acquire multiple locks simultaneously, which is analogous to executing one transaction before validating the previous.