15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

of D consecutive blocks, one block from each disk, is read into the memory buffer. The number of I/O<br />

steps is reduced by a factor of D over sequentially accessing the file from a single disk. Despite its simplicity,<br />

disk striping is not the best solution for most other data access problems. For instance, generalizing the<br />

above problem to concurrently read N sequential files, a disk-striping solution would read D blocks of a<br />

single file in each I/O. The total buffer space required in this situation is ND blocks. A more resourceefficient<br />

solution is to perform concurrent, independent read I/Os on the different disks. In one parallel<br />

I/O, blocks from D different files are fetched from the D disks; this requires only 1/ Dth<br />

the buffer of a disk<br />

striping solution if the blocks are consumed at the same rates. In fact, if the blocks are consumed at a rate<br />

comparable to the I/O time for a block, then by using independent I/Os only Θ(<br />

D)<br />

blocks of buffer suffice.<br />

In contrast to the uniform access patterns implied by the previous examples, a skewed data access pattern<br />

results in hot spots, in which a single disk is repeatedly accessed in a short time period. The bandwidth<br />

of the multiple-disk system is severely underutilized in this situation, and the performance degrades to<br />

that of a single disk. Consider, for instance, the retrieval of constant data length (CDL) video data, in<br />

which the frames are packed into fixed-size data blocks; the blocks are then placed on the disks using<br />

either striped, random, or other disk allocation policy. If a number of such streams are read concurrently,<br />

the access pattern consists of an interleaving of the blocks that depends on the playback times of the<br />

blocks. For constant-bit rate (CBR) video streams the playback time of a block is fixed, and (assuming<br />

striped allocation) the accesses are spread uniformly across the disks as in the example on multiple file<br />

access. In the case of variable bit rate (VBR) video data streams, the accesses are no longer uniformly<br />

distributed across the disks, but depend on the relative playback times of each of the blocks. Consequently,<br />

both the load on a disk and the load across the disks varies as a function of time. In this case, simply<br />

reading the blocks in the time-ordered interleaving of blocks, may no longer maximize the disk parallelism,<br />

and more sophisticated scheduling strategies are necessary to maximize the number of streams<br />

that can be handled by the I/O system [22].<br />

The abstract model of the I/O system that will be used to analyze the quality of different schedules<br />

is based on the PDM [58]: the I/O system consists of D independent disks, which can be accessed in<br />

parallel, and has a buffer of capacity M,<br />

through which all disk accesses occur. The computation requests<br />

data in blocks—a block is the unit of disk access. The I/O trace of a computation is characterized by a<br />

reference string, which is an ordered sequence of I/O requests made by the computation. In serving a<br />

reference string the buffer manager determines which blocks to fetch and when to fetch them so that the<br />

computation can access the blocks in the order specified by the reference string. The computation waits<br />

for data from the I/O system only when the data are not available in the buffer. Additionally, when an<br />

I/O is initiated on one disk, blocks can be concurrently fetched from other disks. The number of parallel<br />

I/Os that are issued is a measure of performance in this model. Because the buffer is shared by all disks<br />

it is possible to allocate buffer space unevenly to different disks to meet the changing load on different<br />

disks. The PDM assumes unit time I/Os. In many applications like those dealing with streaming data,<br />

data logging or in several scientific computations, where large block sizes are natural, this is a viable and<br />

useful idealization. In these situations, the number of I/Os has a direct relationship to the I/O time. In<br />

other cases where requests are for small amounts of data and access times are dominated by the seek and<br />

rotational latency components, no analytical models are widely applicable. In these cases, empirical<br />

evaluations need to be employed in estimating performance [19,23].<br />

33.4 Mechanisms for Improving I/O Performance<br />

Prefetching and caching are two fundamental techniques that are employed for increasing I/O performance.<br />

Prefetching refers to the process of initiating a read from a disk before the computation demands<br />

the data. In a parallel I/O system, while a read progresses on one disk, reads can be started concurrently<br />

on other disks to prefetch data that are required later. These prefetched blocks are held in the I/O buffer<br />

till needed. In this way a temporary concentration of accesses to a small subset of the disks is tolerated<br />

by using the time to prefetch from the disks that are currently idle; when the locality shifts to the latter<br />

set of disks, the required data are already present in the buffer.<br />

© 2002 by CRC Press LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!