Skip to main content

An Adaptive Logging Framework for Persistent Memories

  • Conference paper
  • First Online:
Stabilization, Safety, and Security of Distributed Systems (SSS 2018)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11201))

Abstract

Persistent memory is receiving a tremendous amount of attention recently from both academia and industry. Atomic and durable transactions have been studied to ensure crash consistency in persistent memory. However, whether to use undo or redo logging to execute those transactions is still a hotly debated topic. Redo logging seems appropriate for write-dominated workloads and transactions in high contention scenarios whereas undo logging seems appropriate for read-dominated workloads and transactions in low contention scenarios. This necessitates a priori knowledge on the workload and contention scenario to select an appropriate logging method between redo or undo to achieve better performance. In this paper, we argue that we can obtain the best of both worlds without the need of such a priori knowledge. Particularly, we present an adaptive logging framework that dynamically switches between redo and undo logging at runtime so that the performance is always better than that is obtained from a priori selection of either undo or redo logging. We formally model our framework, prove its correctness, and provide an extensive evaluation of it through a persistent memory emulation of TinySTM using 5 micro-benchmarks and 8 complex benchmarks from STAMP and STAMPEDE suites that are well-known and widely used in the literature. The results show significant benefits of our logging framework.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. The Persistent Memory Development Kit (PMDK). https://github.com/pmem/pmdk/. Accessed 23 Feb 2018

  2. TinySTM 1.0.5. http://tmware.org/sites/tmware.org/files/tinySTM/tinySTM-1.0.5.tgz. Accessed 23 Feb 2018

  3. Avni, H., Levy, E., Mendelson, A.: Hardware transactions in nonvolatile memory. In: Moses, Y. (ed.) DISC 2015. LNCS, vol. 9363, pp. 617–630. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-48653-5_41

    Chapter  Google Scholar 

  4. Chatzistergiou, A., Cintra, M., Viglas, S.: Rewind: recovery write-ahead system for in-memory non-volatile data-structures. PVLDB 8, 497–508 (2015)

    Google Scholar 

  5. Coburn, J., Bunker, T., Schwarz, M., Gupta, R., Swanson, S.: From ARIES to MARS: transaction support for next-generation, solid-state drives. In: SOSP, pp. 197–212 (2013)

    Google Scholar 

  6. Coburn, J., et al.: NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories. In: ASPLOS, pp. 105–118 (2011)

    Google Scholar 

  7. Dulloor, S.R., et al.: System software for persistent memory. In: EuroSys, pp. 15:1–15:15 (2014)

    Google Scholar 

  8. Felber, P., Fetzer, C., Marlier, P., Riegel, T.: Time-based software transactional memory. IEEE Trans. Parallel Distrib. Syst. 21(12), 1793–1807 (2010)

    Article  Google Scholar 

  9. Felber, P., Fetzer, C., Riegel, T.: Dynamic performance tuning of word-based software transactional memory. In: PPOPP, pp. 237–246 (2008)

    Google Scholar 

  10. Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: PODC, pp. 92–101 (2003)

    Google Scholar 

  11. Izraelevitz, J., Kelly, T., Kolli, A.: Failure-atomic persistent memory updates via JUSTDO logging. ASPLOS 44, 427–442 (2016)

    Article  Google Scholar 

  12. Kolli, A., Pelley, S., Saidi, A., Chen, P.M., Wenisch, T.F.: High-performance transactions for persistent memories. In: ASPLOS, pp. 399–411 (2016)

    Article  Google Scholar 

  13. Liu, M., et al.: DudeTM: building durable transactions with decoupling for persistent memory. In: ASPLOS, pp. 329–343 (2017)

    Google Scholar 

  14. Lu, Y., Shu, J., Sun, L.: Blurred persistence: efficient transactions in persistent memory. Trans. Storage 12(1), 3:1–3:29 (2016)

    Article  Google Scholar 

  15. Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: stanford transactional applications for multi-processing. In: IISWC, pp. 35–46 (2008)

    Google Scholar 

  16. Narayanan, D., Hodson, O.: Whole-system persistence. In: ASPLOS, pp. 401–410 (2012)

    Google Scholar 

  17. Nguyen, D., Pingali, K.: What scalable programs need from transactional memory. In: ASPLOS, pp. 105–118 (2017)

    Google Scholar 

  18. Shavit, N., Touitou, D.: Software transactional memory. In: PODC, pp. 204–213 (1995)

    Google Scholar 

  19. Shin, S., Tirukkovalluri, S.K., Tuck, J., Solihin, Y.: Proteus: a flexible and fast software supported hardware logging approach for NVM. In: MICRO, pp. 178–190 (2017)

    Google Scholar 

  20. Volos, H., Tack, A.J., Swift, M.M.: Mnemosyne: lightweight persistent memory. In: ASPLOS, pp. 91–104 (2011)

    Google Scholar 

  21. Wan, H., Lu, Y., Xu, Y., Shu, J.: Empirical study of redo and undo logging in persistent memory. In: NVMSA, pp. 1–6 (2016)

    Google Scholar 

  22. Zhang, Y., Swanson, S.: A study of application performance with non-volatile main memory. In: 2015 31st Symposium on Mass Storage Systems and Technologies (MSST), pp. 1–10 (2015)

    Google Scholar 

  23. Zhao, J., Li, S., Yoon, D.H., Xie, Y., Jouppi, N.P.: Kiln: closing the performance gap between systems with and without persistence support. In: MICRO, pp. 421–432 (2013)

    Google Scholar 

  24. Zhou, P., Zhao, B., Yang, J., Zhang, Y.: A durable and energy efficient main memory using phase change memory technology. In: SIGARCH Computer Architecture News, vol. 37, no. 3, pp. 14–23 (2009)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gokarna Sharma .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Poudel, P., Sharma, G. (2018). An Adaptive Logging Framework for Persistent Memories. In: Izumi, T., Kuznetsov, P. (eds) Stabilization, Safety, and Security of Distributed Systems. SSS 2018. Lecture Notes in Computer Science(), vol 11201. Springer, Cham. https://doi.org/10.1007/978-3-030-03232-6_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-03232-6_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-03231-9

  • Online ISBN: 978-3-030-03232-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics