中文

使惰性订阅安全的硬件扩展

编程语言 2014-07-28 v1

摘要

事务锁消除 (TLE) 利用硬件事务内存 (HTM) 并发执行未修改的临界区,即使它们由同一个锁保护。为确保正确性,用于执行这些临界区的事务通过读取锁并检查其可用性来“订阅”该锁。最近的一篇论文提出,在另一种上下文中(即使用单个全局锁 (SGL) 保护所有事务数据的事务系统),对类似技术采用诱人的“惰性订阅”优化。我们指出了若干陷阱,表明惰性订阅对于 TLE 并不安全,因为在订阅锁之前执行的未修改临界区可能会以多种微妙的方式表现出不正确的行为。我们还表明,最近提出的用于修改事务代码以确保在出现任何不正确行为之前发生订阅的编译器支持,并不足以避免我们所识别的所有陷阱。我们进一步论证,扩展此类编译器支持以规避所有陷阱将增加巨大的复杂性,并且通常会限制订阅可被延迟的程度,从而削弱该优化的有效性。最近提案中建议的硬件扩展也未能解决我们所识别的所有陷阱。在我们这篇 WTTM 2014 论文的扩展版本中,我们描述了使惰性订阅变得安全的硬件扩展,既适用于基于 SGL 的事务系统,也适用于 TLE,且无需特殊的编译器支持。我们还解释了如果可用,如何利用非事务性加载来进一步提高惰性订阅的有效性。

关键词

引用

@article{arxiv.1407.6968,
  title  = {Hardware extensions to make lazy subscription safe},
  author = {Dave Dice and Timothy L. Harris and Alex Kogan and Yossi Lev and Mark Moir},
  journal= {arXiv preprint arXiv:1407.6968},
  year   = {2014}
}

备注

6 pages, extended version of WTTM2014 paper