Advertisement

DurableFS: a file system for NVRAM

  • Chandan KalitaEmail author
  • Gautam Barua
  • Priya Sehgal
Original Research

Abstract

With the availability of hybrid DRAM and NVRAM memory on the memory bus of CPUs, a number of file systems on NVRAM have been designed and implemented. In this paper we present the design and implementation of a file system on NVRAM called DurableFS, which provides atomicity and durability of file operations to applications. It provides ACID properties to transactions involving multiple files. Due to the byte level random accessibility of memory, it is possible to provide these guarantees without much overhead. We use standard techniques like copy on write for data, and a redo log for metadata changes to build an efficient file system which provides durability and atomicity guarantees to transactions. Benchmarks on the implementation shows that there is only a 7% degradation in performance due to providing these guarantees.

Keywords

NVRAM File system Key value Transaction 

References

  1. 1.
    Condit J, Nightingale EB, Frost C, Ipek E, Lee B, Burger D, Coetzee D (2009) Better I/O through byte-addressable, persistent memory. In: Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles. ACM, pp 133–146Google Scholar
  2. 2.
    Dong M, Chen H (2017) Soft updates made simple and fast on non-volatile memory. In: 2017 USENIX annual technical conference (USENIX ATC 17). USENIX Association, Santa Clara, CA, pp 719–731Google Scholar
  3. 3.
    Xia F, Jiang D, Xiong J, Sun N (2017) HiKV: a hybrid index key-value store for DRAM-NVM memory systems. In: 2017 USENIX annual technical conference (USENIXATC 17), pp 349–362Google Scholar
  4. 4.
    Xu J, Swanson S (2016) NOVA: a log-structured file system for hybrid volatile/non-volatile main memories. In: FAST, pp 323–338Google Scholar
  5. 5.
    Dulloor SR, Kumar S, Keshavamurthy A, Lantz P, Reddy D, Sankaran R, Jackson J (2014) System software for persistent memory. In: Proceedings of the ninth European conference on computer systems. ACM, p 15Google Scholar
  6. 6.
    Sehgal P, Basu S, Srinivasan K, Voruganti K (2015) An empirical study of file systems on nvm. In: 2015 31st symposium on mass storage systems and technologies (MSST). IEEE, pp 1–14Google Scholar
  7. 7.
    Chang F, Dean J, Ghemawat S, Hsieh WC, Wallach DA, Burrows M et al (2008) Bigtable: a distributed storage system for structured data. ACM Trans Comput Syst (TOCS) 26(2):4CrossRefGoogle Scholar
  8. 8.
    Mendelsohn A (2013) The oracle story: 1984–2001. IEEE Ann Hist Comput 35(2):10–23MathSciNetCrossRefGoogle Scholar
  9. 9.
    Zhao J, Li S, Yoon DH, Xie Y, Jouppi NP (2013) Kiln: closing the performance gap between systems with and without persistence support. In: 2013 46th annual IEEE/ACM international symposium on microarchitecture (MICRO). IEEE, pp 421–432Google Scholar
  10. 10.
    Rudoff AM (2016) Deprecating the PCOMMIT instruction. https://software.intel.com/en-us/blogs/2016/09/12/deprecate-pcommit-instruction. Accessed 2 Jan 2018
  11. 11.
    Persistent memory programming. http://pmem.io/documents/NVDIMM_DriverWritersGuide-July-2016.pdf. Accessed 2 Jan 2018
  12. 12.
    Bhandari K, Chakrabarti DR, Boehm HJ (2012) Implications of CPU caching on byte-addressable non-volatile memory programming. Hewlett-Packard, Technical report HPL-2012-236Google Scholar
  13. 13.
    Intel corporation: Intel ® architecture instruction set extensions programming reference (2015). https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
  14. 14.
    Direct Access for files (n.d.) https://www.kernel.org/doc/Documentation/filesystems/dax.txt. Accessed 1 Dec 2017
  15. 15.
    Xu J, Zhang L, Memaripour A, Gangadharaiah A, Borase A, Da Silva TB, Rudoff A (2017) NOVA-fortis: a fault-tolerant non-volatile main memory file system. In: Proceedings of the 26th symposium on operating systems principles. ACM, pp 478–496Google Scholar
  16. 16.
    Caulfield AM, De A, Coburn J, Mollow TI, Gupta RK, Swanson S (2010) Moneta: a high-performance storage array architecture for next-generation, non-volatile memories. In: Proceedings of the 2010 43rd annual IEEE/ACM international symposium on microarchitecture. IEEE Computer Society, pp 385–395Google Scholar
  17. 17.
    Volos H, Nalli S, Panneerselvam S, Varadarajan V, Saxena P, Swift MM (2014) Aerie: flexible file-system interfaces to storage-class memory. In: Proceedings of the ninth European conference on computer systems. ACM, p 14Google Scholar
  18. 18.
    Mohan C, Haderle D, Lindsay B, Pirahesh H, Schwarz P (1992) ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans Database Syst (TODS) 17(1):94–162CrossRefGoogle Scholar
  19. 19.
    Fio - Flexible I/O Tester Synthetic Benchmark (n.d.) http://www.storagereview.com/fio_flexible_i_o_tester_synthetic_benchmark. Accessed 21 Dec 2016
  20. 20.
    Filebench (n.d.) https://github.com/filebench/filebench/wiki. Accessed 5 Jan 2018
  21. 21.
    Intel corporation: Intel 64 and IA-32 architectures software developers manual volume 3B: system programming guide, part 2, pp 17–41. https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf
  22. 22.
    The Kernels Command-line Parameters (n.d.) https://www.kernel.org/doc/html/v4.10/admin-guide/kernel-parameters.html. Accessed 7 Aug 2016

Copyright information

© CSI Publications 2019

Authors and Affiliations

  1. 1.IIT GuwahatiGuwahatiIndia
  2. 2.IIIT Guwahati GuwahatiIndia
  3. 3.NetAppBangaloreIndia

Personalised recommendations