%0 Conference Proceedings %T Spindle: A Write-Optimized NVM Cache for Journaling File System %+ Department of Computer Science and Engineering [Shanghai] (CSE) %A Yan, Ge %A Huang, Kaixin %A Huang, Linpeng %Z Part 7: Memory and File System %< avec comité de lecture %( Lecture Notes in Computer Science %B 16th IFIP International Conference on Network and Parallel Computing (NPC) %C Hohhot, China %Y Xiaoxin Tang %Y Quan Chen %Y Pradip Bose %Y Weiming Zheng %Y Jean-Luc Gaudiot %I Springer International Publishing %3 Network and Parallel Computing %V LNCS-11783 %P 251-263 %8 2019-08-23 %D 2019 %R 10.1007/978-3-030-30709-7_20 %K File system %K Non-volatile memory %K Journaling %K Data consistency %Z Computer Science [cs]Conference papers %X 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. %G English %Z TC 10 %Z WG 10.3 %2 https://inria.hal.science/hal-03770541/document %2 https://inria.hal.science/hal-03770541/file/486810_1_En_20_Chapter.pdf %L hal-03770541 %U https://inria.hal.science/hal-03770541 %~ IFIP-LNCS %~ IFIP %~ IFIP-TC %~ IFIP-TC10 %~ IFIP-NPC %~ IFIP-WG10-3 %~ IFIP-LNCS-11783