OASIS: Self-tuning storage for applications
Abstract
This paper introduces OASIS, a self-tuning storage management architecture that allows applications and the storage environment to negotiate resource allocations without requiring human intervention. The goal of OASIS is to maximize the utilization of all the storage resources in the storage area network subject to fairness in the allocation of resources to applications. To achieve this goal, OASIS continually inspects the application's I/O behavior, and determines the application's storage requirements automatically. Subsequently, OASIS communicates this information from the applications to a storage manager by means of a communication protocol that isolates the complexities of applications and storage from each other. The OASIS framework includes algorithms to dynamically and continuously map application requirements into appropriate low-level resource allocations. A key advantage of OASIS over best-effort systems is the ability to fairly share storage resources between workloads of varying characteristics. What distinguishes OASIS from other managed systems however, is its self-tuning nature. We implemented a prototype of the OASIS architecture and performed experiments on a set of competing synthetic workloads derived from traces. Our results show that OASIS is able to detect the bandwidth and latency requirements of the competing workloads and generate a fairer allocation of storage resources than a best-effort approach. More importantly, experience with a real-life database scenario, shows that OASIS is able to satisfy the bandwidth requirements of competing multi-threaded workloads without any storage administrator input. In particular, OASIS is able to identify an under-performing workload and ensure it receives a fair share of the overall storage system resources, resulting in a performance increase by as much as a factor of five for that workload over best-effort resource allocation.