【24h】

Open Nesting in Software Transactional Memory

机译:在软件交易记忆中打开嵌套

获取原文

摘要

Transactional memory (TM) promises to simplify concurrent programming while providing scalability competitive to fine-grained locking. Language-based constructs allow programmers to denote atomic regions declaratively and to rely on the underlying system to provide transactional guarantees along with concurrency. In contrast with fine-grained locking, TM allows programmers to write simpler programs that are composable and deadlock-free. TM implementations operate by tracking loads and stores to memory and by detecting concurrent conflicting accesses by different transactions. By automating this process, they greatly reduce the programmer's burden, but they also are forced to be conservative. In certain cases, conflicting memory accesses may not actually violate the higher-level semantics of a program, and a programmer may wish to allow seemingly conflicting transactions to execute concurrently. Open nested transactions enable expert programmers to differentiate between physical conflicts, at the level of memory, and logical conflicts that actually violate application semantics. A TM system with open nesting can permit physical conflicts that are not logical conflicts, and thus increase concurrency among application threads. Here we present an implementation of open nested transactions in a Java-based software transactional memory (STM) system. We describe new language constructs to support open nesting in Java, and we discuss new abstract locking mechanisms that a programmer can use to prevent logical conflicts. We demonstrate how these constructs can be mapped efficiently to existing STM data structures. Finally, we evaluate our system on a set of Java applications and data structures, demonstrating how open nesting can enhance application scalability.
机译:事务内存(TM)承诺,以简化并发编程,同时提供对细粒锁定竞争的可扩展性。基于语言的构造允许程序员声明地表示原子区域,并依赖底层系统来提供交易保证以及并发性。与细粒度锁定相比,TM允许程序员编写可组合和僵化的程序的更简单的程序。 TM实现通过跟踪负载和存储到内存,并通过检测不同事务的并发冲突访问。通过自动化这个过程,他们大大减少了程序员的负担,但他们也被迫保守。在某些情况下,冲突的内存访问可能无法实际违反程序的更高级别语义,程序员可能希望允许看似冲突的事务同时执行。打开嵌套事务使专家程序员能够区分物理冲突,在内存级别和实际违反应用程序语义的逻辑冲突。具有开放嵌套的TM系统可以允许非逻辑冲突的物理冲突,从而提高应用程序线程之间的并发性。在这里,我们在基于Java的软件交易存储器(STM)系统中,展示了开放嵌套事务的实现。我们描述了新的语言构造,以支持Java中的开放嵌套,我们讨论新的抽象锁定机制,程序员可以用于防止逻辑冲突。我们展示了如何将这些构建体有效地映射到现有的STM数据结构。最后,我们在一组Java应用程序和数据结构上评估我们的系统,演示了开放嵌套如何增强应用程序可扩展性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号