DurableFS: a file system for NVRAM


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.

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

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6


  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–146

  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–731

  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–362

  4. 4.

    Xu J, Swanson S (2016) NOVA: a log-structured file system for hybrid volatile/non-volatile main memories. In: FAST, pp 323–338

  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 15

  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–14

  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):4

    Article  Google Scholar 

  8. 8.

    Mendelsohn A (2013) The oracle story: 1984–2001. IEEE Ann Hist Comput 35(2):10–23

    MathSciNet  Article  Google 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–432

  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-236

  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–496

  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–395

  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 14

  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–162

    Article  Google 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

Download references

Author information



Corresponding author

Correspondence to Chandan Kalita.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Kalita, C., Barua, G. & Sehgal, P. DurableFS: a file system for NVRAM. CSIT 7, 277–286 (2019). https://doi.org/10.1007/s40012-019-00215-0

Download citation


  • File system
  • Key value
  • Transaction