  Building storage systems has remained the domain of systems experts for many
years. They are complex and difficult to implement. Extreme care is needed to
ensure necessary guarantees of performance and operational correctness.
Furthermore, because of restrictions imposed by kernel-based designs, many
legacy implementations have traded software flexibility for performance. Their
implementation is restricted to compiled languages such as C and assembler, and
reuse tends to be difficult or constrained. Nevertheless, storage systems are
implicitly well-suited to software reuse and compositional software
construction. There are many logical functions, such as block allocation,
caching, partitioning, metadata management and so forth, that are common across
most variants of storage. In this paper, we present Comanche, an open-source
project that considers, as first-class concerns, both compositional design and
reuse, and the need for high-performance.
