1. INTRODUCTION
The increasing rate of information generation has led to an explosion
in the amount of data managed in file systems [14], with some
predicting that the data volume of experimental science and simulations
is growing 10 to 100 times faster than the compute speeds
of the systems managing that data [18] . Yet, most file systems
are still using the POSIX IO interface, an interface that was designed
in the mid-1960s [11] when high-end file systems stored
less than 100MB [32]. Today’s personal file systems are 3-4 orders
of magnitude larger and high-end file systems in super-computing
environments and search engine and social network companies are
up to 7-9 orders of magnitude larger, resulting in numbers of data
items for which POSIX abstractions are quite inadequate [36]. One
important reason for the remarkable stability of this interface is its
role as a shield for long-lived I/O libraries and other applications
against changes in the underlying storage system. Another is that
software above the POSIX interface was perceived to sufficiently
compensate for the interface’s shortcoming: examples range from
file format-specific data management applications and libraries in