Academia.eduAcademia.edu

Outline

Virtualize and share non-volatile memories in user space

CCF Transactions on High Performance Computing

https://doi.org/10.1007/S42514-020-00019-8

Abstract

Emerging non-volatile memory (NVM) has attractive characteristics such as DRAM-like low-latency together with the non-volatility of storage devices. Recently, byte-addressable, memory bus-attached NVM has become available. This paper addresses the problem of combining a smaller, faster byte-addressable NVM with a larger, slower storage device, such as SSD, to create the impression of a larger and faster byte-addressable NVM which can be shared across multiple applications concurrently. In this paper, we propose vNVML, a user space library for virtualizing and sharing NVM. vNVML provides for applications transaction-like memory semantics that ensures write ordering, durability, and persistency guarantees across system failures. vNVML exploits DRAM for read caching to improve performance and potentially to reduce the number of writes to NVM, extending the NVM lifetime. vNVML is implemented in C and evaluated with realistic workloads to show that vNVML allows applications to share NVM efficiently, both in a single OS and when docker-like containers are employed. The results from the evaluation show that vNVML incurs less than 10% overhead while providing the benefits of an expanded virtualized NVM space to the applications, and allowing applications to safely share the virtual NVM.

References (38)

  1. Chen, A.: A review of emerging non-volatile memory (NVM) tech- nologies and applications. Solid-State Electron. 125, 25-38 (2016)
  2. Coburn, J., Caulfield, A.M,, Akel, A., Grupp, L.M., Gupta, R.K., Jhala, R., Swanson, S.: NV-heaps: making persistent objects fast and safe with next-generation, non-volatile memories. In: ASPLOS XVI Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 105-118. ACM, Newport Beach (2011)
  3. Condit, J., Nightingale, E.B., Frost, C., Ipek, E., Lee, B., Burger, D., Coetzee, D.: Better i/o through byte-addressable, persistent memory. In: SOSP '09 Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles. ACM, Big Sky, Montana (2009)
  4. Cooper, B.F., Silberstein, A., ErwinTam, Ramakrishnan, R., Sears, R.: Benchmarking cloud serving systems with YCSB. In: SoCC '10 Proceedings of the 1st ACM Symposium on Cloud Computing, pp 143-154. ACM, Indianapolis (2010)
  5. Docker. Docker container. https ://www.docke r.com/ (2013) Docker (2018) Docker container bind mounts. https ://docs.docke r.com/ stora ge/bind-mount s/
  6. Doshi, K., Giles, E.R., Varman, P.: Atomic persistence for scm with a non-intrusive backend controller. In: HPCA '16 Proceedings of the IEEE International Symposium on High Performance Com- puter Architecture. IEEE, Barcelona (2016)
  7. Dulloor, S.R., Kumar, S., Keshavamurthy, A., Lantz, P., Reddy, D., Sankaran, R., Jackson, J.: System software for persistent memory. In: EuroSys '14 Proceedings of the Ninth European Conference on Computer Systems, ACM, Amsterdam (2014)
  8. Eisner, L.A., Mollov, T., Swanson, S.: Quill: Exploiting fast non- volatile memory by transparently bypassing the file system. In: Technical report, UCSD (2013)
  9. Fedorov, V., Kim, J., Qin, M., Gratz, P.V., Reddy, A.L.N.: Speculative paging for future NVM storage. In: MEMSYS '17 Proceedings of the International Symposium on Memory Systems, Alexandria, Virginia (2017)
  10. Giles, E.R., Doshi, K., Varman, P.: Softwrap: A lightweight framework for transactional support of storage class memory. In: MSST '15 Proceedings of the 31st Symposium on Mass Storage Systems and Technologies, pp. 1-14. IEEE, Santa Clara (2015)
  11. Intel.: Persistent memory development kit (2015). https ://pmem.io/ pmdk/ Intel. Storage performance development kit (2017). https ://spdk.io/ Intel: Intel optane dc persistent memory (2019). https ://www.intel .com/ conte nt/www/us/en/archi tectu re-and-techn ology /optan e-dc-persi stent -memor y.html
  12. Joshi, A., Nagarajan, V., Viglas, S., Cintra, M.: Atom: Atomic durabil- ity in non-volatile memory through hardware logging. In: HPCA '17 Proceedings of the IEEE International Symposium on High Performance Computer Architecture. IEEE, Austin (2017)
  13. Jung, J., Won, Y., Kim, E., Shin, H., Jeon, B.: Frash: exploiting storage class memory in hybrid file system for hierarchical storage. ACM Trans. Storage (TOS) 6(1), 1-25 (2010)
  14. Kwon, Y., Fingler, H., Hunt, T., Peter, S., Witchel, E., Anderson. T.: Strata: A cross media file system. In: SOSP '17 Proceedings of the 26th Symposium on Operating Systems Principles, pp. 460-477. ACM, Shangha (2017)
  15. Lee, B.C., Zhou, P., Yang, J., Zhang, Y., Zhao, B., Ipek, E., Mutlu, O., Burger, D.: Phase-change technology and the future of main memory. IEEE Micro 30, 131-141 (2010)
  16. Liang, L., Chen, R., Chen, H., Xia, Y., Park, K., Zang, B., Guan, H.: A case for virtualizing persistent memory. In: SoCC '16 Proceedings of the Seventh ACM Symposium on Cloud Computing. ACM, Santa Clara (2016)
  17. Memaripour, A., Badam, A., Phanishayee, A., Zhou, Y., Alagappan, R., Strauss, K., Swanson, S.: Atomic in-place updates for non-volatile main memories with kamino-tx. In: EuroSys '17 Proceedings of the Twelfth European Conference on Computer Systems, pp. 499-512.ACM, Belgrade (2017)
  18. Microsoft: Transaction isolation levels (2017). https ://docs.micro soft. com/en-us/sql/odbc/refer ence/devel op-app/trans actio n-isola tion- level s?view=sql-serve r-2017 mongoDB (2008a) Mmapv1 storage engine. https ://docs.mongo db.com/manua l/core/mmapv 1/ mongoDB (2008b) Mongodb data base. https ://githu b.com/mongo db Narayanan, D., Hodson, O.: Whole-system persistence. In: ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems. ACM, London (2012)
  19. Pelley, S., Chen, P.M., Wenisch, T.F.: Memory persistency. ISCA '14 Proceeding of the 41st annual international symposium on Com- puter architecuture, pp. 265-276. Minneapolis, Minnesota (2014)
  20. Qiu, S., Reddy, A.L.N.: Nvmfs: a hybrid file system for improving random write in NAND-flash SSD. In: MSST '13 IEEE 29th Symposium on Mass Storage Systems and Technologies. IEEE, Long Beach (2013)
  21. Qureshi, M.K., Srinivasan, V., Rivers, J.A.: Scalable high performance main memory system using phase-change memory technology. In: ISCA '09 Proceedings of the 36th Annual International Sympo- sium on Computer Architecture. ACM, Austin (2009)
  22. Samsung (2017) Ultra-low latency with Samsung z-nand ssd. https ://www.samsu ng.com/semic onduc tor/globa l.semi.stati c/Ultra -Low_Laten cy_with_Samsu ng_Z-NAND_SSD-0.pdf SNIA: NVM Programming Model. In: Storage Networking Industry Association, rev., vol. 1, no. 2 (2017)
  23. Swanson, S.: A vision of persistence (2017). https ://www.sigar ch.org/a- visio n-of-persi stenc e/
  24. Swift, M.: Persistent memory ordering (2015). http://mater ials.dagst uhl.de/files /15/15021 /15021 .Micha elSwi ft1.Slide s.pdf
  25. Venkataraman, S., Tolia, N., Ranganathan, P., Campbell, R.H.: Consist- ent and durable data structures for non-volatile byte-addressable memory. In: FAST '11 Proceedings of the 9th USENIX Confer- ence on File and Storage Technologies, USENIX (2011)
  26. Volos, H., Tack, A.J., Swift, M.M.: Mnemosyne: Lightweight persistent memory. In: ASPLOS XVI Proceedings of the Sixteenth Inter- national Conference on Architectural Support for Programming Languages and Operating Systems, pp. 91-104. ACM, Newport Beach, California (2011)
  27. Volos, H., Nalli, S., Panneerselvam, S., Varadarajan, V., Saxena, P., Swift, M.M.: Aerie: Flexible file-system interfaces to storage- class memory. In: EuroSys '14 Proceedings of the Ninth Euro- pean Conference on Computer Systems. ACM, Amsterdam (2014)
  28. Wan, H., Lu, Y., Xu, Y., Shu, J.: Empirical study of redo and undo logging in persistent memory. In: NVMSA '16 Proceeding of the 5th Non-Volatile Memory Systems and Applications Symposium, pp. 1-6. IEEE, Daegu (2016)
  29. Wang, C., Wei, Q., Yang, J., Chen, C., Xue, M.: How to be consistent with persistent memory? an evaluation approach. NAS '15, pp. 186-194. IEEE, Boston (2015)
  30. Watts, D.: Intel optane dc persistent memory product guide (2019). https ://lenov opres s.com/lp106 6-intel -optan e-dc-persi stent -memor y
  31. Wu, X., Reddy, A.L.N., (2011) SCMFS: a file system for storage class memory. In: SC '11 Proceedings of International Conference for High Performance Computing. Networking, Storage and Analysis. ACM, Seattle (2011)
  32. Xu, J., Swanson, S.: Nova: A log-structured file system for hybrid vola- tile/non-volatile main memories. In: FAST '16 Proceedings of the 14th USENIX Conference on File and Storage Technologies, pp. 323-338. USENIX, Santa Clara (2016)
  33. Yang, J., Wei, Q., Chen, C., Wang, C., Yong, K.L., He, B.: NV-Tree: Reducing consistency cost for NVM-based single level systems. In: FAST '15 Proceedings of the 13th USENIX Conference on File and Storage Technologies. USENIX, Santa Clara (2015)
  34. Yu, S., Chen, P.Y.: Emerging memory technologies: recent trends and prospects. IEEE Solid-State Circuits Mag. 8(2), 43-56 (2016)
  35. Zhang, Y., Swanson, S.: A study of application performance with non- volatile main memory. In: MSST '15 Proceedings of the 31st Symposium on Mass Storage Systems and Technologies. IEEE, Santa Clara (2015)
  36. Zhang, Y., Yang, J., Memaripour, A., Swanson, S.: Mojim: a reliable and highly-available non-volatile memory system. In: ASPLOS '15 Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operat- ing Systems. ACM, Istanbul (2015)
  37. 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 '13 Proceedings of the 46th Annual IEEE/ ACM International Symposium on Microarchitecture. IEEE, Davis (2013)
  38. Zhou, P., Zhao, B., Yang, J., Zhang, Y.: A durable and energy efficient main memory using phase change memory technology. In: ISCA '09 Proceedings of the 36th Annual International Symposium on Computer Architecture. ACM, Austin (2009)