首页> 外文期刊>ACM transactions on software engineering and methodology >RegionTrack: A Trace-Based Sound and Complete Checker to Debug Transactional Atomicity Violations and Non-Serializable Traces
【24h】

RegionTrack: A Trace-Based Sound and Complete Checker to Debug Transactional Atomicity Violations and Non-Serializable Traces

机译:RegionTrack:基于跟踪的声音和完整的检查程序,以调试事务原子性违规和非序列化迹线

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

摘要

Atomicity is a correctness criterion to reason about isolated code regions in a multithreaded program when they are executed concurrently. However, dynamic instances of these code regions, called transactions, may fail to behave atomically, resulting in transactional atomicity violations. Existing dynamic online atomicity checkers incur either false positives or false negatives in detecting transactions experiencing transactional atomicity violations. This article proposes RegionTrack. RegionTrack tracks cross-thread dependences at the event, dynamic subregion, and transaction levels. It maintains both dynamic subregions within selected transactions and transactional happens-before relations through its novel timestamp propagation approach. We prove that RegionTrack is sound and complete in detecting both transactional atomicity violations and non-serializable traces. To the best of our knowledge, it is the first online technique that precisely captures the transitively closed set of happens-before relations over all conflicting events with respect to every running transaction for the above two kinds of issues. We have evaluated RegionTrack on 19 subjects of the DaCapo and the Java Grande Forum benchmarks. The empirical results confirm that RegionTrack precisely detected all those transactions which experienced transactional atomicity violations and identified all non-serializable traces. The overall results also show that RegionTrack incurred 1.10x and 1.08x lower memory and runtime overheads than Velodrome and 2.10x and 1.21x lower than Aerodrome, respectively. Moreover, it incurred 2.89x lower memory overhead than DoubleChecker. On average, Velodrome detected about 55% fewer violations than RegionTrack, which in turn reported about 3%-70% fewer violations than DoubleChecker.
机译:在同时执行时,原子性是在多线程程序中执行孤立的代码区域的正确性标准。但是,这些代码区域的动态实例称为交易,可能无法表现出原因,导致事务性原子性违规。现有的动态在线原子跳棋在检测经历事务原子性违规行为的交易方面会产生假阳性或假否定。本文提出了ElegyTrack。 RegionTrack跟踪事件,动态子区域和事务级别的跨线程依赖。它在通过其新颖时间戳传播方法的关系之前维护所选事务和事务发生的动态次区域。我们证明了大区是声音,并在检测事务原子性违规和不可序列化的迹线时完成。据我们所知,它是第一种在线捕获闭合封闭式的在线技术 - 在所有冲突事件的关系之前,对每个运行交易的所有冲突事件进行了上述两种问题。我们对Dacapo的19个科目和Java Grande论坛基准进行了评估的RegionTrack。经验结果证实,RegionTrack精确地检测了所有经历事务原子性违规的所有这些交易,并识别所有不可序列化的痕迹。整体结果还表明,分别比速度低1.0倍和1.08倍的内存和运行时的凸起和运行时开销分别低于Anodrome的2.10倍和1.21倍。此外,它的内存开销比DoubleCrecker更低了2.89倍。平均而言,Velodrome检测到比地区的违规行为约为55%,否则报告的违规行为约为3%-70%,而不是DoubleChecker。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号