作者: Florian T. Schneider , Vijay Menon , Tatiana Shpeisman , Ali-Reza Adl-Tabatabai
关键词:
摘要: Transactional memory (TM) is a promising concurrency control alternative to locks. Recent work has highlighted important model issues regarding TM semantics and exposed problems in existing implementations. For safe, managed languages such as Java, there growing consensus towards strong atomicity sound, scalable solution. Strong presented challenge implement efficiently because it requires instrumentation of non-transactional accesses, incurring significant overhead even when program makes minimal or no use transactions. To minimize overhead, solutions require either sophisticated type system, specialized hardware, static whole-program analysis. These techniques do not translate easily into production setting on hardware. In this paper, we present novel dynamic optimizations that significantly reduce overheads make practical for language environments. We introduce analyses optimistically track which accesses can avoid instrumentation, describe lightweight speculation recovery mechanism applies these generate speculatively-optimized but safe code dynamically-loaded environment. show how mechanisms by leveraging optimization infrastructure Java system. Measurements set transactional workloads demonstrate our substantially the from factor 5x down 10% less over an efficient weak baseline.