Fast & Flexible IO : A Compositional Approach to Storage Construction for High-Performance Devices
This addresses the problem of difficult and constrained storage system development for systems experts, offering a more flexible approach.
The paper tackles the complexity and inflexibility of building high-performance storage systems by introducing Comanche, an open-source project that uses compositional design to enable software reuse and maintain performance.
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.