skip to main content
research-article
Public Access

DudeTx: Durable Transactions Made Decoupled

Published:04 April 2018Publication History
Skip Abstract Section

Abstract

Emerging non-volatile memory (NVM) offers non-volatility, byte-addressability, and fast access at the same time. It is suggested that programs should access NVM directly through CPU load and store instructions. To guarantee crash consistency, durable transactions are regarded as a common choice of applications for accessing persistent memory data. However, existing durable transaction systems employ either undo logging, which requires a fence for every memory write, or redo logging, which requires intercepting all memory reads within transactions. Both approaches incur significant overhead.

This article presents DudeTx, a crash-consistent durable transaction system that avoids the drawbacks of both undo and redo logging. DudeTx uses shadow DRAM to decouple the execution of a durable transaction into three fully asynchronous steps. The advantage is that only minimal fences and no memory read instrumentation are required. This design enables an out-of-the-box concurrency control mechanism, transactional memory or fine-grained locks, to be used as an independent component. The evaluation results show that DudeTx adds durability to a software transactional memory system with only 7.4%--24.6% throughput degradation. Compared to typical existing durable transaction systems, DudeTx provides 1.7× --4.4× higher throughput. Moreover, DudeTx can be implemented with hardware transactional memory or lock-based concurrency control, leading to a further 1.7× and 3.3× speedup, respectively.

References

  1. H. Akinaga, and H. Shima. 2010. Resistive random access memory (ReRAM) based on metal oxides. Proc. IEEE 98, 12 (2010).Google ScholarGoogle Scholar
  2. D. Apalkov, A. Khvalkovskiy, S. Watts, V. Nikitin, X. Tang, D. Lottis, K. Moon, X. Luo, E. Chen, A. Ong, A. Driskill-Smith, and M. Krounbi. 2013. Spin-transfer torque magnetic random access memory (STT-MRAM). ACM J. Emerg. Technol. Comput. Syst. 9, 2 (May 2013), 13:1--13:35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Arulraj, A. Pavlo, and S. R. Dulloor. 2015. Let’s talk about storage and recovery methods for non-volatile memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (SIGMOD’15), pp. 707--722. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. Atikoglu, Y. Xu, E. Frachtenberg, S. Jiang, and M. Paleczny. 2012. Workload analysis of a large-scale key-value store. In Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS’12), pp. 53--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. G. Atwood. 2011. Current and emerging memory technology landscape. Flash Memory Summit, 9--11.Google ScholarGoogle Scholar
  6. A. Belay, A. Bittau, A. Mashtizadeh, D. Terei, D. Mazières, and C. Kozyrakis. 2012. Dune: Safe user-level access to privileged CPU features. In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (OSDI’12), pp. 335--348. https://github.com/ix-project/dune. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. A. Bernstein, V. Hadzilacos, and N. Goodman. 1986.Concurrency Control and Recovery in Database Systems. Addison-Wesley Longman Publishing Co., Inc., Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H.-J. Boehm, and D. R. Chakrabarti, Persistence programming models for non-volatile memory. 2016. In Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, ACM, pp. 55--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. R. Chakrabarti, H.-J. Boehm, and K. Bhandari. 2014. Atlas: Leveraging locks for non-volatile memory consistency. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA’14). ACM, New York, pp. 433--452. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Chatzistergiou, M. Cintra, and S. D. Viglas. 2015. Rewind: Recovery write-ahead system for in-memory non-volatile data-structures. Proceedings of the VLDB Endowment 8, 5 (2015), 497--508. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Chen, P. B. Gibbons, and S. Nath. 2011. Rethinking database algorithms for phase change memory. In Online Proceedings of the 5th Biennial Conference on Innovative Data Systems Research (ICIDR’11), pp. 21--31.Google ScholarGoogle Scholar
  12. P. Chi, W.-C. Lee, and Y. Xie. 2014. Making B+-tree efficient in PCM-based main memory. In Proceedings of the 2014 International Symposium on Low Power Electronics and Design. ACM, pp. 69--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. V. Chidambaram, T. S. Pillai, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau. 2013. Optimistic crash consistency. In Proceedings of the 24th ACM Symposium on Operating Systems Principles. ACM, pp. 228--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. 2011. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. ACM Sigplan Notices, 46 3 (2011), 105--118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Y. Collet. 2013. Lz4: Extremely fast compression algorithm. code. google. com.Google ScholarGoogle Scholar
  16. B. F. Cooper, A. Silberstein, E. Tam, R. Ramakrishnan, and R. Sears. 2010. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing. ACM, pp. 143--154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. C. Cunha, A. Bestavros, and M. Crovella. 1995.Characteristics of WWW Client-Based Traces. Computer Science Department Technical Report BU-CS-95-010, Boston University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Dragojević, D. Narayanan, E. B. Nightingale, M. Renzelmann, A. Shamis, A. Badam, and M. Castro. 2015. No compromises: Distributed transactions with consistency, availability, and performance. In Proceedings of the 25th Symposium on Operating Systems Principles. ACM, pp. 54--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. R. Dulloor, S. Kumar, A. Keshavamurthy, P. Lantz, D. Reddy, R. Sankaran, and J. Jackson. 2014. System software for persistent memory. In Proceedings of the 9th European Conference on Computer Systems (EuroSys’14). ACM, New York, pp. 15:1--15:15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Eilert, M. Leinwander, and G. Crisenza. 2009. Phase change memory: A new memory enables new memory usage models. In Proceedings of the 2009 IEEE International Memory Workshop. IEEE, pp. 1--2.Google ScholarGoogle Scholar
  21. P. Felber, C. Fetzer, P. Marlier, and T. Riegel. 2010. Time-based software transactional memory. IEEE Transactions on Parallel and Distributed Systems 21, 12 (2010), 1793--1807. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Felber, C. Fetzer, and T. Riegel. 2008. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’08), pp. 237--246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. F. Freitas, and W. W. Wilcke. 2008. Storage-class memory: The next storage system technology. IBM Journal of Research and Development 52, 4/5 (2008), 439. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. E. R. Giles, K. Doshi, and P. Varman. 2015. Softwrap: A lightweight framework for transactional support of storage class memory. In Proceedings of the 2015 31st Symposium on Mass Storage Systems and Technologies (MSST’15). IEEE, pp. 1--14.Google ScholarGoogle Scholar
  25. T. Haerder, and A. Reuter. 1983. Principles of transaction-oriented database recovery. ACM Computing Surveys (CSUR) 15, 4 (1983), 287--317. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Herlihy, and J. E. B. Moss. 1993. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture (ISCA’93), pp. 289--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Q. Hu, J. Ren, A. Badam, and T. Moscibroda. 2017. Log-structured non-volatile main memory. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC’17), pp. 703--717. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Intel. NVM Library. 2014. Retrieved July 2016 from https://github.com/pmem/nvml.Google ScholarGoogle Scholar
  29. Intel. 2012. Architecture instruction set extensions programming reference. Intel Corporation (Feb. 2012).Google ScholarGoogle Scholar
  30. Intel Corp. 2015. Intel and Micron Produce Breakthrough Memory Technology.Google ScholarGoogle Scholar
  31. International Technology Roadmap for Semiconductors (ITRS). 2011. Process, integration, devices and structures. Retrieved July 2016 from http://www.itrs.net/Links/2011ITRS/2011Chapters/2011PIDS.pdf.Google ScholarGoogle Scholar
  32. R. Johnson, I. Pandis, R. Stoica, M. Athanassoulis, and A. Ailamaki. 2010. Aether: A scalable approach to logging. Proc. VLDB Endow. 3, 1-2 (Sept. 2010), 681--692. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. H. Kimura. 2015. FOEDUS: OLTP engine for a thousand cores and nvram. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. ACM, pp. 691--706. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Kolli, S. Pelley, A. Saidi, P. M. Chen, and T. F. Wenisch. 2016. High-performance transactions for persistent memories. In Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, pp. 399--411. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. E. Kültürsay, M. Kandemir, A. Sivasubramaniam, and O. Mutlu. 2013. Evaluating STT-RAM as an energy-efficient main memory alternative. In Proceeding of the 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS’13), pp. 256--267.Google ScholarGoogle Scholar
  36. B. Lee, P. Zhou, J. Yang, Y. Zhang, B. Zhao, E. Ipek, O. Mutlu, and D. Burger. 2010. Phase-change technology and the future of main memory. IEEE Micro 30 (Jan. 2010), 131--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. H. Lim, B. Fan, D. G. Andersen, and M. Kaminsky. 2011. SILT: A memory-efficient, high-performance key-value store. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP’11), pp. 1--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Liu, M. Zhang, K. Chen, X. Qian, Y. Wu, and J. Ren. 2017. DudeTM: Building durable transactions with decoupling for persistent memory. In Proceedings of the 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’17). ACM, pp. 329--343. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Y. Lu, J. Shu, J. Guo, S. Li, and O. Mutlu. 2013. LightTx: A lightweight transactional design in flash-based SSDS to support flexible transactions. In Proceedings of the 2013 IEEE 31st International Conference on Computer Design (ICCD’13). IEEE, pp. 115--122.Google ScholarGoogle Scholar
  40. Y. Lu, J. Shu, and L. Sun. 2015. Blurred persistence in transactional persistent memory. In Proceedings of the 2015 31st Symposium on Mass Storage Systems and Technologies (MSST’15). IEEE, pp. 1--13.Google ScholarGoogle Scholar
  41. Y. Lu, J. Shu, L. Sun, and O. Mutlu. 2014. Loose-ordering consistency for persistent memory. In Proceedings of the 2014 32nd IEEE International Conference on Computer Design (ICCD’14). IEEE, pp. 216--223.Google ScholarGoogle Scholar
  42. S. Mittal, and J. S. Vetter. 2016. A survey of software techniques for using non-volatile memories for storage and main memory systems. IEEE Transactions on Parallel and Distributed Systems, 27, 5 (2016), 1537--1550. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. K. E. Moore, J. Bobba, M. J. Moravan, M. D. Hill, D. A. Wood, et al. 2006. LogTM: Log-based transactional memory. In Proceedings of HPCA, Vol. 6, pp. 254--265.Google ScholarGoogle ScholarCross RefCross Ref
  44. D. Narayanan, and O. Hodson. 2012. Whole-system persistence. ACM SIGARCH Computer Architecture News 40, 1 (2012), 401--410. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. S. Pelley, P. M. Chen, and T. F. Wenisch. 2014. Memory persistency. ACM SIGARCH Computer Architecture News 42, 3 (2014), 265--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. M. K. Qureshi, V. Srinivasan, and J. A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA’09), pp. 24--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. H. E. Ramadan, C. J. Rossbach, and E. Witchel. 2008. Dependence-aware transactional memory for increased concurrency. In Proceedings of the 41st Annual IEEE/ACM International Symposium on Microarchitecture, IEEE Computer Society, pp. 246--257. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. S. Raoux, G. W. Burr, M. J. Breitwisch, C. T. Rettner, Y.-C. Chen, R. M. Shelby, M. Salinga, D. Krebs, S.-H. Chen, H.-L. Lung, and C. H. Lam. 2008. Phase-change random access memory: A scalable technology. IBM Journal of Research and Development 52, 4 (July 2008), 465--479. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. J. Ren, Q. Hu, S. Khan, and T. Moscibroda. 2017. Programming for non-volatile main memory is hard. In Proceedings of the 8th Asia-Pacific Workshop on Systems (APSys’17). ACM, pp. 13:1--13:8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. J. Ren, C.-J. M. Liang, Y. Wu, and T. Moscibroda. 2015. Memory-centric data storage for mobile systems. In Proceedings of the 2015 USENIX Annual Technical Conference (USENIX ATC’15), pp. 599--611. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. J. Ren, J. Zhao, S. Khan, J. Choi, Y. Wu, and O. Mutlu. 2015. ThyNVM: Enabling software-transparent crash consistency in persistent memory systems. In Proceedings of the 48th International Symposium on Microarchitecture (MICRO-48). ACM, pp. 672--685. http://persper.com/thynvm/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. T. Riegel, C. Fetzer, and P. Felber. 2007. Time-based transactional memory with scalable time bases. In Proceedings of the 19th Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA’07). ACM, pp. 221--228. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. M. Rosenblum, and J. K. Ousterhout. 1992. The design and implementation of a log-structured file system. ACM Transactions on Computer Systems 10, 1 (Feb. 1992), 26--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. A. Rudoff. 2016. Deprecating the PCOMMIT instruction. Retrieved September 2016 from https://software.intel.com/en-us/blogs/2016/09/12/deprecate-pcommit-instruction.Google ScholarGoogle Scholar
  55. S. M. Rumble, A. Kejriwal, and J. Ousterhout. 2014. Log-structured memory for DRAM-based storage. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST’14), pp. 1--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. N. Simo, W. Antoni, M. Markk, and R. Vilho. 2011. Telecom application transaction processing benchmark. Retrieved July 2016 from http://tatpbenchmark.sourceforge.net/.Google ScholarGoogle Scholar
  57. K. Suzuki, and S. Swanson. 2015. A survey of trends in non-volatile memory technologies: 2000-2014. In Proceedings of the 2015 IEEE International Memory Workshop (IMW). IEEE, pp. 1--4.Google ScholarGoogle Scholar
  58. THE TRANSACTION PROCESSING COUNCIL. 2010. TPC-C Benchmark V5. Retrieved July 2016 from http://www.tpc.org/tpcc/.Google ScholarGoogle Scholar
  59. S. Tu, W. Zheng, E. Kohler, B. Liskov, and S. Madden. 2013. Speedy transactions in multicore in-memory databases. In Proceedings of the 24th ACM Symposium on Operating Systems Principles. ACM, pp. 18--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. H. Volos, A. J. Tack, and M. M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI), pp. 91--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. H. Wan, Y. Lu, Y. Xu, and J. Shu. 2016. Empirical study of redo and undo logging in persistent memory. In Proceedings of the 2016 5th Non-Volatile Memory Systems and Applications Symposium (NVMSA), pp. 1--6.Google ScholarGoogle Scholar
  62. C. Wang, W.-Y. Chen, Y. Wu, B. Saha, and Adl-A.-R. Tabatabai. 2007. Code generation and optimization for transactional memory constructs in an unmanaged language. In Proceedings of the International Symposium on Code Generation and Optimization (CGO’07), pp. 34--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. P. Wang. 1991. An In-Depth Analysis of Concurrent B-tree Algorithms. MIT Cambridge Lab for Computer Science Technical Report, Massachusetts Institute of Technology, Cambridge, MA.Google ScholarGoogle Scholar
  64. T. Wang, and R. Johnson. 2014. Scalable logging through emerging non-volatile memory. Proceedings of the VLDB Endowment 7, 10 (2014), 865--876. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Z. Wang, H. Qian, J. Li, and H. Chen. 2014. Using restricted transactional memory to build a scalable in-memory database. In Proceedings of the 9th European Conference on Computer Systems. ACM, p. 26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. X. Wei, J. Shi, Y. Chen, R. Chen, and H. Chen. 2015. Fast in-memory transaction processing using RDMA and HTM. In Proceedings of the 25th Symposium on Operating Systems Principles. ACM, pp. 87--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. M. Wu, and W. Zwaenepoel, eNVy: A non-volatile, main memory storage system. In Proceedings of the 6th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI), pp. 86--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. P. Wu, M. M. Michael, C. von Praun, T. Nakaike, R. Bordawekar, H. W. Cain, C. Cascaval, S. Chatterjee, S. Chiras, R. Hou, et al. 2009. Compiler and runtime techniques for software transactional memory optimization. Concurrency and Computation: Practice and Experience 21, 1 (2009), 7--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. J. Xu, and S. Swanson, NOVA: A log-structured file system for hybrid volatile/non-volatile main memories. In Proceedings of the 14th Usenix Conference on File and Storage Technologies (FAST’16), pp. 323--338. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. J. Yang, Q. Wei, C. Chen, C. Wang, K. L. Yong, and B. He. 2015. NV-Tree: Reducing consistency cost for NVM-based single level systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST’15), pp. 167--181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. J. H. Yoon, H. C. Hunter, and G. A. Tressler. 2013. Flash 8 DRAM Si scaling challenges, emerging non-volatile memory technology enablement—Implications to enterprise storage and server compute systems. Flash Memory Summit.Google ScholarGoogle Scholar
  72. Y. Zhang, and S. Swanson. 2015. A study of application performance with non-volatile main memory. In Proceedings of the 31st Symposium on Mass Storage Systems and Technologies (MSST’15), pp. 1--10.Google ScholarGoogle Scholar
  73. 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. ACM, pp. 421--432. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. DudeTx: Durable Transactions Made Decoupled

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Storage
      ACM Transactions on Storage  Volume 14, Issue 1
      Special Issue on NVM and Storage
      February 2018
      237 pages
      ISSN:1553-3077
      EISSN:1553-3093
      DOI:10.1145/3190860
      • Editor:
      • Sam H. Noh
      Issue’s Table of Contents

      Copyright © 2018 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 4 April 2018
      • Accepted: 1 January 2018
      • Revised: 1 September 2017
      • Received: 1 February 2017
      Published in tos Volume 14, Issue 1

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!