ABSTRACT
This paper addresses the challenges of coupling byte addressable non-volatile memory (NVM) and hardware transaction memory (HTM) in high-performance transaction processing. We first show that HTM transactions can be ordered using existing processor instructions without any hardware changes. In contrast, existing solutions posit changes to HTM mechanisms in the form of special instructions or modified functionality. We exploit the ordering mechanism to design a novel persistence method that decouples HTM concurrency from back-end NVM operations. Failure atomicity is achieved using redo logging coupled with aliasing to guard against mistimed cache evictions. Our algorithm uses efficient lock-free mechanisms with bounded static memory requirements. We evaluated our approach using both micro-benchmarks, and, benchmarks in the STAMP suite, and showed that it compares well with standard (volatile) HTM transactions. We also showed that it yields significant gains in throughput and latency in comparison with persistent transactional locking.
- H. Avni and T. Brown. PHyTM: Persistent hybrid transactional memory. Proceedings of the VLDB Endowment, 10(4):409–420, 2016. Google ScholarDigital Library
- H. Avni, E. Levy, and A. Mendelson. Hardware transactions in nonvolatile memory. In International Symposium on Distributed Computing, pages 617–630. Springer, 2015. Google ScholarDigital Library
- D. A. Bader and K. Madduri. Design and implementation of the HPCS graph analysis benchmark on symmetric multiprocessors. In International Conference on High-Performance Computing, pages 465–476. Springer, 2005. Google ScholarDigital Library
- D. R. Chakrabarti, H.-J. Boehm, and K. Bhandari. Atlas: Leveraging locks for non-volatile memory consistency. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA ’14, pages 433–452, New York, NY, USA, 2014. ACM. Google ScholarDigital Library
- A. Chatzistergiou, M. Cintra, and S. D. Viglas. Rewind: Recovery write-ahead system for in-memory non-volatile data-structures. Proceedings of the VLDB Endowment, 8(5):497–508, 2015. Google ScholarDigital Library
- J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. Lee, D. Burger, and D. Coetzee. Better I/O through byte-addressable, persistent memory. In Proceedings of 22nd ACM SOSP. ACM Press, 2009. Google ScholarDigital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional Locking II. In Distributed Computing, pages 194–208. Springer, 2006. Google ScholarDigital Library
- K. Doshi, E. Giles, and P. Varman. Atomic Persistence for SCM with a Non-intrusive Backend Controller. In The 22nd International Symposium on High-Performance Computer Architecture. IEEE, March 2016.Google ScholarCross Ref
- F. Färber, S. K. Cha, J. Primsch, C. Bornhövd, S. Sigg, and W. Lehner. SAP HANA Database: Data management for modern business applications. SIGMOD Rec., 40(4):45–51, Jan. 2012. Google ScholarDigital Library
- E. Giles, K. Doshi, and P. Varman. Bridging the programming gap between persistent and volatile memory using WrAP. In Proceedings of the ACM International Conference on Computing Frontiers, page 30. ACM, 2013. Google ScholarDigital Library
- E. Giles, K. Doshi, and P. Varman. SoftWrAP: A lightweight framework for transactional support of storage class memory. In Mass Storage Systems and Technologies (MSST), 2015 31st Symposium on, pages 1–14, May 2015.Google ScholarCross Ref
- T. L. Harris. A pragmatic implementation of non-blocking linkedlists. In Proceedings of the 15th International Conference on Distributed Computing, DISC ’01, pages 300–314, London, UK, UK, 2001. Springer-Verlag. Google ScholarDigital Library
- M. Herlihy and J. E. B. Moss. Transactional Memory: Architectural support for lock-free data structures, volume 21,2. ACM, 1993. Google ScholarDigital Library
- Intel Corporation. Intel 64 and IA-32 Architectures Software Developer Manual. http://www.software.intel.com/.Google Scholar
- Intel Corporation. Intel Transactional Synchronization Extensions. In Intel Architecture Instruction Set Extensions Programming Reference, chapter 8. February 2012. http://software. intel.com/.Google Scholar
- A. Joshi, V. Nagarajan, S. Viglas, and M. Cintra. ATOM: Atomic durability in non-volatile memory through hardware logging. In 2017 IEEE International Symposium on High Performance Computer Architecture (HPCA), 2017.Google ScholarCross Ref
- M. Liu, M. Zhang, K. Chen, X. Qian, Y. Wu, W. Zheng, and J. Ren. DudeTM: Building Durable Transactions with Decoupling for Persistent Memory. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’17, pages 329–343, New York, NY, USA, 2017. ACM. Google ScholarDigital Library
- X. Meng, J. Bradley, B. Yavuz, E. Sparks, S. Venkataraman, D. Liu, J. Freeman, D. Tsai, M. Amde, S. Owen, et al. MLlib: Machine learning in apache spark. Journal of Machine Learning Research, 17(34):1–7, 2016. Google ScholarDigital Library
- C. C. Minh. TL2-x86, a port of tl2 to x86 architecture. In https://github.com/ccaominh/tl2-x86. Stanford, 2015.Google Scholar
- C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on, pages 35–46. IEEE, 2008.Google Scholar
- D. Narayanan and O. Hodson. Whole-system persistence. In Proceedings of 17th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 401–410. ACM Press, 2012. Google ScholarDigital Library
- R. Palamuttam, R. M. Mogrovejo, C. Mattmann, B. Wilson, K. Whitehall, R. Verma, L. McGibbney, and P. Ramirez. Scispark: Applying inmemory distributed computing to weather event detection and tracking. In Big Data (Big Data), 2015 IEEE International Conference on, pages 2020–2026. IEEE, 2015. Google ScholarDigital Library
- S. Pelley, P. M. Chen, and T. F. Wenisch. Memory persistency. In Computer Architecture (ISCA), 2014 ACM/IEEE 41st International Symposium on, pages 265–276. IEEE, 2014. Google ScholarDigital Library
- L. Pu, K. Doshi, E. Giles, and P. Varman. Non-Intrusive Persistence with a Backend NVM Controller. IEEE Computer Architecture Letters, 15(1):29–32, Jan 2016. Google ScholarDigital Library
- R. Rajwar and J. R. Goodman. Speculative lock elision: Enabling highly concurrent multithreaded execution. In Proceedings of the 34th annual ACM/IEEE international symposium on Microarchitecture, pages 294–305. IEEE Computer Society, 2001. Google ScholarDigital Library
- V. Raman, G. Attaluri, R. Barber, N. Chainani, D. Kalmuk, V. KulandaiSamy, J. Leenstra, S. Lightstone, S. Liu, G. M. Lohman, et al. Db2 with blu acceleration: So much more than just a column store. Proceedings of the VLDB Endowment, 6(11):1080–1091, 2013. Google ScholarDigital Library
- J. Ren, J. Zhao, S. Khan, J. Choi, Y. Wu, and O. Mutlu. ThyNVM: Enabling software-transparent crash consistency in persistent memory systems. In Proceedings of the 48th International Symposium on Microarchitecture, pages 672–685. ACM, 2015. Google ScholarDigital Library
- G. Team. Gridgain: In-memory computing platform, 2007.Google Scholar
- S. Venkatraman, N. Tolia, P. Ranganathan, and R. H. Campbell. Consistent and durable data structures for non-volatile byte addressable memory. In Proceedings of 9th Usenix Conference on File and Storage Technologies, pages 61–76. ACM Press, 2011. Google ScholarDigital Library
- H. Volos, A. J. Tack, and M. Swift. Mnemosyne: Lightweight persistent memory. In Proceedings of 16th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 91–104. ACM Press, 2011. Google ScholarDigital Library
- J. Zhao, S. Li, D. H. Yoon, Y. Xie, and N. P. Jouppi. Kiln: Closing the performance gap between systems with and without persistence support. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-46, pages 421–432, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- J. Zhao, O. Mutlu, and Y. Xie. Firm: Fair and high-performance memory control for persistent memory systems. In Microarchitecture (MICRO), 2014 47th Annual IEEE/ACM International Symposium on, pages 153–165. IEEE, 2014. Google ScholarDigital Library
Index Terms
- Continuous checkpointing of HTM transactions in NVM
Recommendations
Continuous checkpointing of HTM transactions in NVM
ISMM '17This paper addresses the challenges of coupling byte addressable non-volatile memory (NVM) and hardware transaction memory (HTM) in high-performance transaction processing. We first show that HTM transactions can be ordered using existing processor ...
Brief Announcement: Hardware Transactional Storage Class Memory
SPAA '17: Proceedings of the 29th ACM Symposium on Parallelism in Algorithms and ArchitecturesEmerging persistent memory technologies (generically referred to as Storage Class Memory or SCM) hold tremendous promise for accelerating popular data-management applications like in-memory databases. However, programmers now need to deal with ensuring ...
Hybrid STM/HTM for nested transactions on OpenJDK
OOPSLA '16Transactional memory (TM) has long been advocated as a promising pathway to more automated concurrency control for scaling concurrent programs running on parallel hardware. Software TM (STM) has the benefit of being able to run general transactional ...
Comments