An EW-Array employs all three of the above techniques. A large
value allows for more efficient writes. A large
value more
aggressively reduces the seek cost. A large
value more
aggressively reduces the rotational cost of reads. Given a total
budget of
disks and the constraint
, one must carefully balance these three
dimensions to optimize the overall performance.
The decision of how to configure these three dimensions is influenced
by both the workload and disk characteristics. A workload that has a
small read-to-write ratio and little idle time demands a large
dilution factor
so that more resources are devoted to
speeding up writes. Disks with large seek delays
demand a large striping factor
, while disks with large
rotational delay demand a large mirroring factor
.
In this section, we explore the impact of array configurations using a simple synthetic workload (that is part of the Intel ``Iometer'' benchmark [15]). More complex workloads are explored in Section 6. In each of the test runs, the length of the queue of the outstanding requests is kept at a constant. This is accomplished by adding a new request to the queue as soon as an old one is retired from it. Different queue lengths emulate different degree of idleness in the system. In all runs, the read/write ratio is 50/50.
Figure 2 compares the latency of alternative
EW-Array configurations.
In these experiments, the number of outstanding requests is one so
there is no queueing.
As a result,
a relatively small dilution factor () is generally
sufficient for absorbing
the writes while a relatively large
product improves
read latency. A properly configured 4-disk EW-Array halves the
latency achieved on a single-disk conventional system.
Note that many of the configurations in Figure 2
have fractional values for
and
, yet
is
always integral. That means each replica stripes data across
disks. On each of those disks, only
fraction of the tracks are
actually used to store data, and utilization of those tracks is
.
Figure 3 shows how the throughput of optimally
configured EW-Arrays scales with an increasing number of disks.
We vary the number of outstanding requests per disk to emulate different
load levels.
For a fixed number of disks,
as we raise the request arrival rate, a progressively larger dilution factor
is needed to absorb the disk writes that can no longer be masked
by idle periods.
![]() |
![]() |