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 paper shows how to use full-path indexing in a file system to realize fast directory scans, writes, and renames. The paper introduces a range-rename mechanism for efficient key-space changes in a write-optimized dictionary. This mechanism is encapsulated in the key-value-store API and simplifies the overall design of the file system.

We implemented this mechanism in 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 standard, indirection-based file systems for a range of sizes. BetrFS 0.4 outperforms relative-path file systems such as BetrFS 0.3 as well as traditional file systems such as ext4, XFS, and ZFS across a variety of workloads.

Details

Nominated for Best Paper

Date

February, 2018

Authors

  • Yang Zhan
  • Alex Conway
  • Rob Johnson
  • Alex Conway
  • Yizheng Jiao
  • Eric Knorr
  • Michael A. Bender
  • Martin Farach-Colton
  • William Jannen
  • Donald E. Porter
  • Jun Yuan

Related projects

Type

Inproceedings

Booktitle

USENIX FAST