  We propose PAIO, the first general-purpose framework that enables system
designers to build custom-made Software-Defined Storage (SDS) data plane
stages. It provides the means to implement storage optimizations adaptable to
different workflows and user-defined policies, and allows straightforward
integration with existing applications and I/O layers. PAIO allows stages to be
integrated with modern SDS control planes to ensure holistic control and
system-wide optimal performance. We demonstrate the performance and
applicability of PAIO with two use cases. The first improves 99th percentile
latency by 4x in industry-standard LSM-based key-value stores. The second
ensures dynamic per-application bandwidth guarantees under shared storage
environments.
