首页> 外文期刊>ACM Transactions on Parallel Computing >Lock-Free Transactional Transformation for Linked Data Structures
【24h】

Lock-Free Transactional Transformation for Linked Data Structures

机译:链接数据结构的无锁事务转换

获取原文
获取原文并翻译 | 示例

摘要

Nonblocking data structures allow scalable and thread-safe access to shared data. They provide individual operations that appear to execute atomically. However, it is often desirable to execute multiple operations atomically in a transactional manner. Previous solutions, such as Software Transactional Memory (STM) and transactional boosting, manage transaction synchronization separately from the underlying data structure's thread synchronization. Although this reduces programming effort, it leads to overhead associated with additional synchronization and the need to rollback aborted transactions. In this work, we present a new methodology for transforming high-performance lock-free linked data structures into high-performance lock-free transactional linked data structures without revamping the data structures' original synchronization design. Our approach leverages the semantic knowledge of the data structure to eliminate the overhead of false conflicts and rollbacks. We encapsulate all operations, operands, and transaction status in a transaction descriptor, which is shared among the nodes accessed by the same transaction. We coordinate threads to help finish the remaining operations of delayed transactions based on their transaction descriptors. When a transaction fails, we recover the correct abstract state by reversely interpreting the logical status of a node. We also present an obstruction-free version of our algorithm that can be applied to dynamic execution scenarios and an example of our approach applied to a hash map. In our experimental evaluation using transactions with randomly generated operations, our lock-free transactional data structures outperform the transactional boosted ones by 70% on average. They also outperform the alternative STM-based approaches by a factor of 2 to 13 across all scenarios. More importantly, we achieve 4,700 to 915,000 times fewer spurious aborts than the alternatives.
机译:非阻塞数据结构允许对共享数据进行可伸缩且线程安全的访问。它们提供似乎自动执行的单个操作。但是,通常希望以事务方式原子地执行多个操作。诸如软件事务存储(STM)和事务增强之类的先前解决方案将事务同步与基础数据结构的线程同步分开进行管理。尽管这可以减少编程工作量,但会导致与其他同步相关的开销,并且需要回滚中止的事务。在这项工作中,我们提出了一种新的方法,可以将高性能无锁链接数据结构转换为高性能无锁事务性链接数据结构,而无需修改数据结构的原始同步设计。我们的方法利用数据结构的语义知识来消除错误冲突和回滚的开销。我们将所有操作,操作数和事务状态封装在一个事务描述符中,该描述符在同一事务访问的节点之间共享。我们根据线程的事务描述符协调线程以帮助完成延迟事务的其余操作。当事务失败时,我们通过反向解释节点的逻辑状态来恢复正确的抽象状态。我们还将介绍可用于动态执行方案的算法的无障碍版本,以及适用于哈希映射的方法示例。在我们使用具有随机生成的操作的交易进行的实验评估中,我们的无锁交易数据结构平均比提升交易的数据结构高70%。在所有情况下,它们的性能也比基于STM的替代方法高2到13倍。更重要的是,与其他方法相比,我们减少了4,700至915,000倍的伪造流产。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号