usenix conference policies
You are here
Embedded Inodes and Explicit Grouping: Exploiting Bandwidth for Small Files
Gregory R. Ganger; M. Frans Kaashoek, Massachusetts Institute of Technology
Small file performance in most file systems is limited by slowly improving disk access times, even though current file systems improve on-disk locality by allocating related data objects in the same general region. The key insight for why current file systems perform poorly is that locality is insufficient - exploiting disk bandwidth for small data objects requires that they be placed adjacently. We describe C-FSS (Co-locating Fast File System), which introduces two techniques, embedded inodes and explicit grouping, for exploiting what disks do well (bulk data movement) to avoid what they do poorly (reposition to new locations).
With embedded inodes, the inodes for most files are stored in the directory with the corresponding name, removing a physical level of indirection without sacrificing the logical level of indirection. With explicit grouping, the data blocks of multiple small files named by a given directory are allocated adjacently and moved to and from the disk as a unit in most cases. Measurement for our C-FSS implementation show that embedded inodes and explicit grouping have the potential to increase small file throughput (for both reads and writes) by a factor of 5-7 compared to the same file system without these techniques. The improvement comes directly from reducing the number of disk accesses required by an order of magnitude. Preliminary experience with software-development applications shows performance improvements ranging from 30-300 percent.
author = {Gregory R. Ganger and M. Frans Kaashoek},
title = {Embedded Inodes and Explicit Grouping: Exploiting Bandwidth for Small Files},
booktitle = {USENIX 1997 Annual Technical Conference (USENIX ATC 97)},
year = {1997},
address = {Anaheim, CA},
url = {https://www.usenix.org/conference/usenix-1997-annual-technical-conference/embedded-inodes-and-explicit-grouping-exploiting},
publisher = {USENIX Association},
month = jan
}
connect with us