Yang Zhan, Yizheng Jiao, Donald E. Porter, Alex Conway, Eric Knorr, Martín Farach-Colton, M. A. Bender, Jun Yuan, William Jannen, Rob Johnson
{"title":"全路径索引文件系统中的有效目录突变","authors":"Yang Zhan, Yizheng Jiao, Donald E. Porter, Alex Conway, Eric Knorr, Martín Farach-Colton, M. A. Bender, Jun Yuan, William Jannen, Rob Johnson","doi":"10.1145/3241061","DOIUrl":null,"url":null,"abstract":"Full-path indexing can improve I/O efficiency 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 efficient 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&egr;-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.","PeriodicalId":273014,"journal":{"name":"ACM Transactions on Storage (TOS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-11-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Efficient Directory Mutations in a Full-Path-Indexed File System\",\"authors\":\"Yang Zhan, Yizheng Jiao, Donald E. Porter, Alex Conway, Eric Knorr, Martín Farach-Colton, M. A. Bender, Jun Yuan, William Jannen, Rob Johnson\",\"doi\":\"10.1145/3241061\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Full-path indexing can improve I/O efficiency 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 efficient 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&egr;-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.\",\"PeriodicalId\":273014,\"journal\":{\"name\":\"ACM Transactions on Storage (TOS)\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-11-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM Transactions on Storage (TOS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3241061\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Storage (TOS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3241061","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
摘要
对于使用传统的分层目录组织数据的工作负载,全路径索引可以提高I/O效率,因为数据是按扫描顺序放在持久存储上的。但是,先前的结果表明,使用全路径索引的本地文件系统中的重命名代价非常高。本文展示了如何在文件系统中使用全路径索引来实现快速的目录扫描、写入和重命名。本文介绍了一种范围重命名机制,用于在写优化字典中有效地更改键空间。这种机制被封装在键值应用程序编程接口(API)中,简化了整个文件系统的设计。我们在B&egr; trees文件系统(BetrFS)中实现了这种机制,这是Linux的内核内本地文件系统。这个新版本,即BetrFS 0.4,执行递归greps的速度比BetrFS 0.3快1.5倍,随机写速度比BetrFS 0.3快1.2倍,但是对于各种大小的文件系统,重命名与基于间接的文件系统竞争。在各种工作负载中,BetrFS 0.4的性能优于BetrFS 0.3,也优于传统的文件系统,如ext4、Extents file System (XFS)和Z file System (ZFS)。
Efficient Directory Mutations in a Full-Path-Indexed File System
Full-path indexing can improve I/O efficiency 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 efficient 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&egr;-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.