
SGI's XFS
or Cool Pet Tricks
with B+ Trees
Robert Grimm
New York University

The Three Questions
What is the problem?
What is new or different?
What are the contributions and limitations?

Some Background
Inode: on-disk data structure for a file's meta-data
and pointers to data
Defines FS-internal
namespace
Inode numbers
Originated in Unix FFS
Vnode: kernel object
for files
Defines standard API
to different file systems
Originated in Sun OS
[McKusick et al. '96]

Motivation
On one side: I/O bottleneck
Harder to utilize increasing I/O capacity and bandwidth
112 9 GB disk drives provide 1 TB of storage
High end drives provide 500 MB/sec sustained bandwidth
On the other side: I/O intensive applications
Editing of uncompressed video
30 MB/sec per stream, 108 GB for one hour
Streaming compressed video on demand
2.7 TB for 1,000 movies, 200 movies require 100 MB/sec

Existing File Systems = Bad
Slow crash recovery
fsck needs to scan entire disk
No support for large file systems
32 bit block pointers address only 4 million blocks
At 8 KB per block, 32 TB
No support for large, sparse files
64 bit block pointers require more levels of indirection
Are also quite inefficient
Fixed-size extents are still too limiting