Prefetching in Segmented Disk Cache
for Multi-Disk Systems
Valery V. Soloviev
North Dakota State University
Abstract:
This paper investigates the performance of a multi-disk storage system
equipped with a segmented disk cache processing a workload of multiple
relational scans. Prefetching is a popular method of improving the
performance of scans. Many modern disks have a multisegment cache
which can be used for prefetching. We observe that, exploiting
declustering as a data placement method, prefetching in a segmented
cache causes a load imbalance among several disks. A single disk
becomes a bottleneck, degrading performance of the entire system. A
variation in disk queue length is a primary factor of the
imbalance. Using a precise simulation model, we investigate several
approaches to achieving better balancing. Our metrics are a scan
response time for the closed-end system and an ability to sustain a
workload without saturating for the open-end system. We arrive at two
main conclusions: (1) Prefetching in main memory is inexpensive and
effective for balancing and can supplement or substitute prefetching
in disk cache. (2) Disk-level prefetching provides about the same
performance as main memory prefetching if request queues are managed
in the disk controllers rather than in the host. Checking the disk
cache before queuing requests provides not only better request
response time but also drastically improves balancing. A single cache
performs better than a segmented cache for this method.
David Kotz --
Last modified: Wed Jan 31 20:16:29 1996