As the processor-disk performance gap continues to widen and computer systems become ever more complex, increasingly aggressive and automated methods are needed to improve I/O performance. This work concerns mechanizable ways to effectively increase I/O performance. Our specific contributions are as follows.

First, we introduce our thesis that it is useful and practical for the storage system to be introspective and to automatically optimize disk block layout in response to the dynamic reference behavior. Based on the technology trends, we posit that a promising approach to improving I/O performance is to replicate selected disk blocks and to lay them out to increase the spatial locality of reference.

Next, we characterize how storage is used in real personal computer and server systems. Among the things we analyze are the overall significance of I/O in the workloads, how the I/O load varies over time, and the interaction of reads and writes. We find that there are idle resources that can potentially be used to perform any optimization, and that optimizing the disk block layout is likely to achieve useful benefit.

Based on our workload analysis, we next develop a simulation methodology that more accurately models the timing of I/O arrivals than previous practice. Using this methodology, we study I/O optimization techniques such as read/write caching, sequential prefetching, opportunistic prefetching, request scheduling, striping and short-stroking to understand their actual effectiveness, and to establish an optimized baseline configuration for subsequent experiments. We also examine disk technology trends to quantify their performance effect.

Next, we introduce Automatic Locality-Improving Storage (ALIS), a storage system that automatically replicates and reorganizes selected disk blocks based on their usage patterns. Using trace-driven simulations, we demonstrate that the techniques we develop for ALIS are relatively insensitive to disk technology trends and are extremely effective, improving average read performance by up to 50% for servers and by about 15% for personal computers.

Finally, we consider the additional use of processing power in the storage system to handle application processing such as running decision support queries. Our results suggest that highly scalable parallel software systems are needed for this to be effective.





Download Full History