Enhancement of cooperation between file systems and applications -- VFS extensions for optimized performance

Modern operating systems incorporate an abstract layer called Virtual File System (VFS), which is positioned between user applications and real file systems to hide the differences of various file systems and to expose generic application interfaces for requesting file system services. However, VFS...

Full description

Saved in:
Bibliographic Details
Published inScience China. Information sciences Vol. 58; no. 9; pp. 42 - 51
Main Authors Wang, Li, Liao, XiangKe, Xue, JingLing, Weil, Sage, Wen, YunChuan, Yang, XueJun
Format Journal Article
LanguageEnglish
Published Beijing Science China Press 01.09.2015
Springer Nature B.V
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Modern operating systems incorporate an abstract layer called Virtual File System (VFS), which is positioned between user applications and real file systems to hide the differences of various file systems and to expose generic application interfaces for requesting file system services. However, VFS sometimes does not give applications an opportunity to pass information to file systems to help them make correct optimization decisions. In this paper, we review the Linux VFS, discuss its deficiencies and propose several extensions to allow applications to cooperate with the file systems more efficiently. We introduce simple prefetching interfaces and advisory flags to allow applications to communicate application-related semantics to VFS and/or the underlying file systems. These suggestions, which neither affect the semantics of applications nor modify their programming models, not only lead to simple VFS/file systems but also guide them to make correct performance-related decisions, if required. We demonstrate that these interfaces and flags are also easy to implement and can boost application performance by up to 4.29X.
Bibliography:WANG Li, LIAO XiangKe, WEN YunChuan, XUE JingLing, WEIL Sage, YANG XueJun( 1 School of Computer Science and Technology, National University of Defense Technology, Changsha 410073, China; 2School of Computer Science and Engineering, University of New South Wales, Sydney 100049, Australia; 3Inktank Corporation, Los Angeles 90017, USA; 4Kylin Corporation, Changsha 410073, China)
virtual file system; metadata cache; dentry cache; page cache; page readahead
Modern operating systems incorporate an abstract layer called Virtual File System (VFS), which is positioned between user applications and real file systems to hide the differences of various file systems and to expose generic application interfaces for requesting file system services. However, VFS sometimes does not give applications an opportunity to pass information to file systems to help them make correct optimization decisions. In this paper, we review the Linux VFS, discuss its deficiencies and propose several extensions to allow applications to cooperate with the file systems more efficiently. We introduce simple prefetching interfaces and advisory flags to allow applications to communicate application-related semantics to VFS and/or the underlying file systems. These suggestions, which neither affect the semantics of applications nor modify their programming models, not only lead to simple VFS/file systems but also guide them to make correct performance-related decisions, if required. We demonstrate that these interfaces and flags are also easy to implement and can boost application performance by up to 4.29X.
11-5847/TP
ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 23
ISSN:1674-733X
1869-1919
DOI:10.1007/s11432-014-5181-x