BetrFS: a right-optimized write-optimized file system
William K. Jannen, Jun Tang Yuan, Yang Zhan, Amogh Akshintala, John Esmet, Yizheng Jiao, Ankur Mittal, Prashant Pandey, Phaneendra Reddy, Leif Walsh, Michael A. Bender, Martı́n Farach-Colton, Rob Johnson, Bradley C. Kuszmaul, Donald E. Porter · 2015
The Bε-tree File System, or BetrFS, (pronounced “better eff ess”) is the first in-kernel file system to use a write-optimized index. Write optimized indexes (WOIs) are promising building blocks for storage systems be-cause of their potential to implement both microwrites and large scans efficiently. Previous work on WOI-based file systems has shown promise but has also been hampered by several open problems, which this paper addresses. For example, FUSE issues many queries into the file system, su-perimposing read-intensive workloads on top of write-intensive ones, thereby reducing the effectiveness of WOIs. Moving to an in-kernel implementation can ad-dress this problem by providing finer control of reads. This paper also contributes several implementation tech-niques to leverage kernel infrastructure without throttling write performance. Our results show that BetrFS provides good perfor-mance for both arbitrary microdata operations, which in-clude creating small files, updating metadata, and small writes into large or small files, and for large sequen-tial I/O. On one microdata benchmark, BetrFS pro-vides more than 4 × the performance of ext4 or XFS. BetrFS is an ongoing prototype effort, and requires ad-ditional data-structure tuning to match current general-purpose file systems on some operations such as deletes, directory renames, and large sequential writes. Nonethe-less, many applications realize significant performance improvements. For instance, an in-place rsync of the Linux kernel source realizes roughly 1.6–22 × speedup over other commodity file systems. 1