TY - JOUR
T1 - Efficient directory mutations in a full-path-indexed file system
AU - Zhan, Yang
AU - Jiao, Yizheng
AU - Porter, Donald E.
AU - Conway, Alex
AU - Knorr, Eric
AU - Farach-Colton, Martin
AU - Bender, Michael A.
AU - Yuan, Jun
AU - Jannen, William
AU - Johnson, Rob
N1 - Publisher Copyright:
© 2018 Association for Computing Machinery.
PY - 2018/11
Y1 - 2018/11
N2 - Full-path indexing can improve I/O eficiency for workloads that operate on data organized using traditional, hierarchical directories, because data is placed on persistent storage in scan order. Prior results indicate, however, that renames in a local file system with full-path indexing are prohibitively expensive. This article shows how to use full-path indexing in a file system to realize fast directory scans, writes, and renames. The article introduces a range-rename mechanism for eficient key-space changes in a write-optimized dictionary. This mechanism is encapsulated in the key-value Application Programming Interface (API) and simplifies the overall file system design. We implemented this mechanism in B ϵ -trees File System (BetrFS), an in-kernel, local file system for Linux. This new version, BetrFS 0.4, performs recursive greps 1.5x faster and random writes 1.2x faster than BetrFS 0.3, but renames are competitive with indirection-based file systems for a range of sizes. BetrFS 0.4 outperforms BetrFS 0.3, as well as traditional file systems, such as ext4, Extents File System (XFS), and Z File System (ZFS), across a variety of workloads.
AB - Full-path indexing can improve I/O eficiency for workloads that operate on data organized using traditional, hierarchical directories, because data is placed on persistent storage in scan order. Prior results indicate, however, that renames in a local file system with full-path indexing are prohibitively expensive. This article shows how to use full-path indexing in a file system to realize fast directory scans, writes, and renames. The article introduces a range-rename mechanism for eficient key-space changes in a write-optimized dictionary. This mechanism is encapsulated in the key-value Application Programming Interface (API) and simplifies the overall file system design. We implemented this mechanism in B ϵ -trees File System (BetrFS), an in-kernel, local file system for Linux. This new version, BetrFS 0.4, performs recursive greps 1.5x faster and random writes 1.2x faster than BetrFS 0.3, but renames are competitive with indirection-based file systems for a range of sizes. BetrFS 0.4 outperforms BetrFS 0.3, as well as traditional file systems, such as ext4, Extents File System (XFS), and Z File System (ZFS), across a variety of workloads.
UR - http://www.scopus.com/inward/record.url?scp=85061181366&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85061181366&partnerID=8YFLogxK
U2 - 10.1145/3241061
DO - 10.1145/3241061
M3 - Article
AN - SCOPUS:85061181366
SN - 1553-3077
VL - 14
JO - ACM Transactions on Storage
JF - ACM Transactions on Storage
IS - 3
M1 - 22
ER -