Special Issues

Research progress on non-volatile memory based storage system

  • SHU Jiwu ,
  • LU Youyou ,
  • ZHANG Jiacheng ,
  • ZHENG Weimin
Expand
  • Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China

Received date: 2016-05-30

  Revised date: 2016-06-27

  Online published: 2016-08-18

Abstract

Non-volatile memory includes both sector-addressable flash memory and byte-addressable persistent memory. Flash memory has advantages like high performance, low energy consumption and light weight compared to hard disk drives, and brings opportunities to high-efficiency storage systems. Byte-addressable persistent memory (e.g., PCM, RRAM etc.),on the other hand, has high density over volatile DRAM and enlarges the memory space for multi-core CPUs. However, traditional storage systems fail to fully exploit the benefits of the emerging non-volatile memory. This paper first analyzes the challenges of storage system based on nonvolatile memory, and then discusses the revolutions in terms of storage architecture, system software and distributed protocols for flash memory and persistent memory, respectively. Finally, it points out the open problems for future research on storage systems based on the non-volatile memory.

Cite this article

SHU Jiwu , LU Youyou , ZHANG Jiacheng , ZHENG Weimin . Research progress on non-volatile memory based storage system[J]. Science & Technology Review, 2016 , 34(14) : 86 -94 . DOI: 10.3981/j.issn.1000-7857.2016.14.010

References

[1] Qureshi M K, Gurumurthi S, Rajendran B. Phase change memory: from devices to systems[M]. San Rafael: Morgan & Claypool Publisher, 2011.
[2] 陆游游, 舒继武. 闪存存储系统综述[J]. 计算机研究与发展, 2013, 50(1): 49-59. Lu Youyou, Shu Jiwu. A survey on flash based storage systems[J]. Journal of Computer Research and Development, 2013, 50(1): 49-59.
[3] Fusion IO. The fusion-io difference[EB/OL]. [2015-05-06]. http://www.fusionio.com/load/-media-/lqaz4e/docsLibrary/FIO_SSD_Differentiator_Overview.pdf.
[4] Yang J, Minturn D B, Hady F. When poll is better than interrupt[C]//Conference on File and Storage Technologies (FAST). San Jose, CA, USA: USENIX, 2012: 25-32.
[5] Nellans D, Zappe M, Axboe J, et al. Ptrim ()+ exists (): Exposing new FTL primitives to applications[C]//The 2nd Annual Non-Volatile Memory Workshop (NVMW). La Jolla, CA, USA: UCSD, 2011: 17-17.
[6] Prabhakaran V, Rodeheffer T L, Zhou L. Transactional flash[C]//Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI). Berkeley, CA, USA: USENIX, 2008: 147-160.
[7] Ouyang X, Nellans D, Wipfel R, et al. Beyond block I/O: Rethinking traditional storage primitives[C]//Proceedings of the 17th IEEE International Symposium on High Performance Computer Architecture (HPCA). San Antonio, Texas, USA: IEEE, 2011: 301-311.
[8] Lu Y, Shu J, Guo J, et al. LightTx: A lightweight transactional design in flash-based SSDs to support flexible transactions[C]//Proceedings of the IEEE 31st International Conference on Computer Design (ICCD). Asheville, North Carolina, USA: IEEE, 2013: 115-122.
[9] Swanson S, Caulfield A M. Refactor, reduce, recycle: Restructuring the I/O stack for the future of storage[J]. Computer, 2013, 46(8): 52-59.
[10] 陆游游. 闪存文件系统关键技术研究[D]. 北京: 清华大学, 2015. Lu Youyou. Research on key technologies for flash-based file systems[D]. Beijing: Tsinghua University, 2015.
[11] Hewlett Packard Enterprise. StoreServ7450[EB/OL]. [2015-05-01]. http://www.hp.com/hpinfo/newsroom/press.kits/2014/HPDiscover2014/3PAR.
[12] Andersen D G, Franklin J, Kaminsky M, et al. FAWN: A fast array of wimpy nodes[C]//Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (SOSP). Big Sky, Montana, USA: ACM, 2009: 1-14.
[13] Caufield A M, Grupp L M, Gordon S S. Using flash memory to build fast, power-efficient clusters for data-intensive applications[C]//Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). New York, NY, USA: ACM, 2009: 217-228.
[14] Caulfield A M, De A, Coburn J, et al. Moneta: A high-performance storage array architecture for next-generation, non-volatile memories[C]//Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). Atlanta, GA, USA: IEEE Computer Society, 2010: 385-395.
[15] Yu Y J, Shin D I, Shin W, et al. Optimizing the block I/O subsystem for fast storage devices[J]. ACM Transactions on Computer Systems (TOCS), 2014, 32(2): 6-10.
[16] Bjørling M, Axboe J, Nellans D, et al. Linux block IO: Introducing multi-queue SSD access on multi-core systems[C]//Proceedings of the 6th International Systems and Storage Conference (SYSTOR). Haifa, Israel: ACM, 2013: 22-31.
[17] Ouyang J, Lin S, Jiang S, et al. Software-defined flash for web-scale internet storage systems[C]//Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems(ASPLOS). Salt Lake City, Utah, USA: ACM, 2014: 471-484.
[18] Wang P, Sun G, Jiang S, et al. An efficient design and implementation of LSM-tree based key-value store on open-channel SSD[C]//Proceedings of the 9th European Conference on Computer Systems (EuroSys). New York, NY, USA: ACM, 2014: 16-29.
[19] Zhang J, Shu J, Lu Y. RFFS: A log-structured file system on raw-flash devices[C/OL]. WiP Session of the 14th USENIX Conference on File and Storage Technologies (FAST), Santa Clara, CA, USA, February 22-25, 2016. [2016-03-01]. http://storage.cs.tsinghua.edu.cn/~lu/papers/fast16wip.pdf.
[20] Lee S, Liu M, Jun S, et al. Application-managed flash[C]//Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST). Santa Clara, CA, USA: USENIX, 2016: 339-353.
[21] Kang J U, Hyun J, Maeng H, et al. The multi-streamed solid-state drive[C/OL]. 6th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 14), Philadelphia, PA, USA, June 17-20, 2014. [2015-05-01]. https://www.usenix.org/system/files/conference/hotstorage14/hotstorage14-paper-kang.pdf.
[22] Woodhouse D. JFFS2: The journaling flash file system, version 2[EB/OL]. [2015-05-06]. http://sourceware.org/jffs2.
[23] MTD Subsystem for Linux. UBIFS-UBI file-system[EB/OL]. [2015-05-01]. http://www.linux-mtd.infradead.org/doc/ubifs.html.
[24] Aleph One Limited. YAFFS[EB/OL]. [2015-05-01]. http://www.yaffs.net.
[25] Lee C, Sim D, Hwang J, et al. F2FS: A new file system for flash storage[C]//Proceedings of the 13th USENIX Conference on File and Storage Technologies(FAST). Santa Clara, CA, USA: USENIX, 2015: 273-286.
[26] Josephson W K, Bongo L A, Flynn D, et al. DFS: A file system for virtualized flash storage[C]//Proceedings of the 8th USENIX Conference on File and Storage Technologies(FAST). Berkeley, CA, USA: USENIX, 2010: 85-99.
[27] Lu Y, Shu J, Zheng W. Extending the lifetime of flash-based storage through reducing write amplification from file systems[C]//Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST). Berkeley, CA: USENIX, 2013: 257-270.
[28] Lu Y, Shu J, Wang W. ReconFS: A reconstructable file system on flash storage[C]//Proceedings of the 12th USENIX Conference on File and Storage Technologies(FAST). Berkeley, CA, USA: USENIX, 2014: 75-88.
[29] Holland D A, Angelino E, Wald G, et al. Flash caching on the storage client[C]//Proceedings of the 2013 USENIX Conference on Annual Technical Conference (ATC). San Jose, CA, USA: USENIX, 2013: 127-138.
[30] Liu R, Yang C, Li C, et al. Duracache: A durable ssd cache using MLC NAND flash[C]//Proceedings of the 50th Annual Design Automation Conference (DAC). Austin, Texas, USA: ACM, 2013: 166-171.
[31] Koller R, Marmol L, Rangaswami R, et al. Write policies for host-side flash caches[C]//Proceedings of the 11th USENIX Conference on File and Storage Technologies(FAST). San Jose, CA, USA: USENIX, 2013: 45-58.
[32] Qin D, Brown A D, Goel A. Reliable writeback for client-side flash caches[C]//Proceedings of the 2014 USENIX Annual Technical Conference (ATC). Philadelphia, PA, USA: USENIX, 2014: 451-462.
[33] Ou J, Shu J, Lu Y, et al. EDM: An endurance-aware data migration scheme for load balancing in SSD storage clusters[C]//IEEE 28th International Parallel and Distributed Processing Symposium(IPDPS). Phoenix, Arizona, USA: IEEE, 2014: 787-796.
[34] Balakrishnan M, Malkhi D, Prabhakaran V, et al. Corfu: A shared log design for flash clusters[C]//Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation(NSDI). San Jose, CA, USA: USENIX, 2012: 1-14.
[35] Balakrishnan M, Malkhi D, Wobber T, et al. Tango: Distributed data structures over a shared log[C]//Proceedings of the 24th ACM Symposium on Operating Systems Principles(SOSP). Farmington, Pennsylvania, USA: ACM, 2013: 325-340.
[36] Lu Y, Shu J, Sun L. Blurred persistence: efficient transactions in persistent memory[J]. ACM Transactions on Storage, 2016, 12(1): 1-13.
[37] Condit J, Nightingale E B, Frost C, et al. Better I/O through byte-addressable, persistent memory[C]//Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles(SOSP). Big Sky, Montana, USA: ACM, 2009: 133-146.
[38] Moraru I, Andersen D G, Kaminsky M, et al. Persistent, protected and cached: Building blocks for main memory data stores[EB/OL]. [2015-05-06]. http://www.researchgate.net/publication/268269110.
[39] Lu Y, Shu J, Sun L, et al. Loose-ordering consistency for persistent memory[C]//Proceedings of the IEEE 32nd International Conference on Computer Design(ICCD). Phoenix, Arizona, USA: IEEE, 2014: 216-223.
[40] Pelley S, Chen P M, Wenisch T F. Memory persistency[C]//Proceedings of the 41st ACM/IEEE International Symposium on Computer Architecture (ISCA). Minneapolis, Minnesota, USA: ACM/IEEE, 2014: 265-276.
[41] Intel corporation: Intel architecture instruction set extensions programming reference[EB/OL]. [2015-05-06]. https://software.intel.com/sites/default/files/managed/0d/53/319433-022.pdf.
[42] Narayanan D, Hodson O. Whole-system persistence[C]//Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems(ASPLOS). New York, NY, USA: ACM, 2012: 401-410.
[43] Zhao J, Li S, Yoon D H, et al. Kiln: Closing the performance gap between systems with and without persistence support[C]//Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture(MICRO). Davis, CA, USA: ACM, 2013: 421-432.
[44] Lu Y, Shu J, Sun L. Blurred persistence in transactional persistent memory[C]//Proceedings of the 31st International Conference on Massive Storage Systems and Technology (MSST). Santa Clara, CA, USA: IEEE, 2015: 1-13.
[45] Intel and Micro produce breakthrough memory technology[EB/OL]. [2015-05-06]. http://newsroom.intel.com/community/intel_newsroom/blog/2015/07/28/intel-and-micron-produce-breakthrough-memory-technology.
[46] Volos H, Tack A J, Swift M M. Mnemosyne: Lightweight persistent memory[C]//Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). New York, NY, USA: ACM, 2011: 91-104.
[47] Coburn J, Caulfield A M, Akel A, et al. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories[C]//Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). New York, NY, USA: ACM, 2011: 105-118.
[48] Wu X, Reddy A L. SCMFS: A file system for storage class memory[C]//Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC). Seattle, WA, USA: ACM, 2011: 39-52.
[49] Dulloor S R, Kumar S, Keshavamurthy A, et al. System software for persistent memory[C]//Proceedings of the 9th European Conference on Computer Systems (EuroSys). Amsterdam, The Netherlands: ACM, 2014: 15-28.
[50] Ou J, Shu J, Lu Y. A high performance file system for non-volatile main memory[C]//Proceedings of the 2016 European Conference on Computer Systems (EuroSys). London, UK: ACM, 2016: 12-25.
Outlines

/