An EW-Array resembles a conventional striped mirror in how data is
distributed and reads are performed.
However, the two systems differ in
how writes are satisfied: instead of performing a
write to one of many fixed locations, a
EW-Array
chooses a disk whose head is closest to a free block among
candidates to perform the foreground write.
In cases where a higher
degree of reliability is desired,
the two disk heads that are
closest to their free blocks are
chosen to perform the foreground writes.
The remaining
(or
) writes are
buffered in the delayed write queues of the remaining
disks to be performed in the background, also in an
eager-writing fashion.
In an EW-Array, reads enjoy good latency
and throughput just as they do in a conventional striped mirror.
Foreground write latency is improved greatly due to eager-writing.
This latency can be even lower when there are more disk heads
to choose from. Unlike a striped mirror, copy propagation is no
longer the limiting problem because the writes are sufficiently
efficient that they are easily masked even when idle time is scarce.
As a result, an EW-Array can
sustain higher I/O throughput. The low cost of replica propagation
also makes it possible to
raise the degree of replication for even lower read latency
or to increase the fraction of foreground writes
for higher reliability.