Cost-aware caching schemes in heterogeneous storage systems
Modern single- and multi-processor computer systems incorporate, either directly or through a LAN, a number of storage devices with diverse performance characteristics. These storage devices have to deal with workloads with unpredictable burstiness. A storage-aware caching scheme-that partitions the cache among the disks, and aims at balancing the work across the disks-is necessary in this environment. Moreover, maintaining proper size for these partitions is crucial. Adjusting the partition size after each epoch (a certain time interval) assumes that the workload in the subsequent epoch will show similar characteristics as observed in the current epoch. However, in an environment with highly bursty and time-varying workload such an approach seems to be optimistic. Moreover, the existing storage-aware caching schemes assume linear relationship between cache size and hit ratio. But, in practice a (disk) partition may accumulate cache blocks (thus, choke the remaining disks) without increasing the hit ratio significantly. This disk choking phenomenon may degenerate the performance of the disk system. In this paper, we address the issues of continuous repartitioning and disk choking. First, we present a caching scheme that continuously adjusts the partition size forgoing any periodic activity. Later, considering the disk choking issue, we present a repartitioning framework based on the notion of marginal gains. Experimental results show the effectiveness of our approach. We show that our scheme outperforms the existing storage-aware caching schemes.
caching heterogeneous storage systems disk array file systems