Spindle: A Write-Optimized NVM Cache for Journaling File System

  • Ge Yan
  • Kaixin Huang
  • Linpeng HuangEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11783)


Journaling techniques are widely employed in modern file systems to guarantee crash consistency. However, journaling usually leads to system performance decrease due to the frequent storage accesses it entails. Architects can utilize emerging non-volatile memory (NVM) as a persistent cache or journaling device to reduce the storage accesses of journaling file systems. Yet problems such as double writes, metadata write amplification and heavy transaction ordering overhead still exist in current solutions. Therefore, we propose Spindle, a write-optimized NVM cache to address these challenges. Spindle decouples data and metadata accesses by processing data in DRAM while pinning metadata in NVM. With redesigned metadata log and state switch mechanism, Spindle eliminates double writes and relieves metadata write amplification. Moreover, Spindle adopts a lightweight transaction scheme to guarantee crash consistency and reduce transaction ordering overhead. Experimental results reveal that Spindle achieves up to \(47\%\) throughput improvement compared with state-of-the-art design.


File system Non-volatile memory Journaling Data consistency 



This work is supported by National Key Research & Development Program of China (Grant No. 2018YFB10033002), the National Nature Science Foundation of China (Grant No. 61472241).


  1. 1.
    Best, S.: JFS overview (2000)Google Scholar
  2. 2.
    Condit, J., et al.: Better I/O through byte-addressable, persistent memory. In: Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, pp. 133–146. ACM (2009) Google Scholar
  3. 3.
    Dadmal, U.D., Vinkare, R.S., Kaushik, P., Mishra, S.: 3D X point technology. Int. J. Electron. Commun. Soft Comput. Sci. Eng. (IJECSCSE) 13–17 (2017)Google Scholar
  4. 4.
    Dulloor, S.R., et al.: System software for persistent memory. In: Proceedings of the Ninth European Conference on Computer Systems, p. 15. ACM (2014)Google Scholar
  5. 5.
    Hwang, D., Kim, W.H., Won, Y., Nam, B.: Endurable transient inconsistency in byte-addressable persistent B+-TREE. In: FAST, pp. 187–200 (2018)Google Scholar
  6. 6.
    Lee, E., Bahn, H., Noh, S.H.: Unioning of the buffer cache and journaling layers with non-volatile memory. In: FAST, pp. 73–80 (2013)Google Scholar
  7. 7.
    Lee, E., Kang, H., Bahn, H., Shin, K.G.: Eliminating periodic flush overhead of file I/O with non-volatile buffer cache. IEEE Trans. Comput. 65(4), 1145–1157 (2016)MathSciNetCrossRefGoogle Scholar
  8. 8.
    Lee, S.K., Lim, K.H., Song, H., Nam, B., Noh, S.H.: WORT: write optimal radix tree for persistent memory storage systems. In: FAST, pp. 257–270 (2017) Google Scholar
  9. 9.
    Li, C., Shilane, P., Douglis, F., Shim, H., Smaldone, S., Wallace, G.: Nitro: a capacity-optimized SSD cache for primary storage. In: ATC, pp. 501–512 (2014)Google Scholar
  10. 10.
    Lu, Y., Shu, J., Guo, J., Li, S., Mutlu, O.: LightTX: a lightweight transactional design in flash-based SSDs to support flexible transactions. In: 2013 IEEE 31st International Conference on Computer Design (ICCD), pp. 115–122. IEEE (2013)Google Scholar
  11. 11.
    Mathur, A., Cao, M., Bhattacharya, S., Dilger, A., Tomas, A., Vivier, L.: The new ext4 filesystem: current status and future plans. In: Proceedings of the Linux symposium, vol. 2, pp. 21–33 (2007)Google Scholar
  12. 12.
    Pelley, S., Chen, P.M., Wenisch, T.F.: Memory persistency. In: ACM SIGARCH Computer Architecture News, vol. 42, pp. 265–276. IEEE Press (2014)Google Scholar
  13. 13.
    Prabhakaran, V., Rodeheffer, T.L., Zhou, L.: Transactional flash. In: OSDI, vol. 8 (2008)Google Scholar
  14. 14.
    Sun, Z., et al.: Multi retention level STT-RAM cache designs with a dynamic refresh scheme. In: Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 329–338. ACM (2011)Google Scholar
  15. 15.
    Wei, Q., Wang, C., Chen, C., Yang, Y., Yang, J., Xue, M.: Transactional NVM cache with high performance and crash consistency. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, p. 56. ACM (2017)Google Scholar
  16. 16.
    Wu, X., Reddy, A.: Scmfs: a file system for storage class memory. In: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, p. 39. ACM (2011)Google Scholar
  17. 17.
    Xu, C., Niu, D., Muralimanohar, N., Jouppi, N.P., Xie, Y.: Understanding the trade-offs in multi-level cell reram memory design. In: 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC), pp. 1–6. IEEE (2013)Google Scholar
  18. 18.
    Xu, J., Swanson, S.: NOVA: a log-structured file system for hybrid volatile/non-volatile main memories. In: FAST, pp. 323–338 (2016)Google Scholar
  19. 19.
    Yoon, D.H., Chang, J., Schreiber, R.S., Jouppi, N.P.: Practical nonvolatile multilevel-cell phase change memory. In: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, p. 21. ACM (2013)Google Scholar
  20. 20.
    Zheng, S., Huang, L., Liu, H., Wu, L., Zha, J.: HMVFS: a hybrid memory versioning file system. In: 2016 32nd Symposium on Mass Storage Systems and Technologies (MSST), pp. 1–14. IEEE (2016)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2019

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringShanghai Jiao Tong UniversityShanghaiChina

Personalised recommendations