Disks have a great deal of flexibility in how they implement range writes. For example, low-cost disks can trivially support the range write interface with almost no additional complexity: a disk can simply write the specified data to the first choice from the list of ranges (or a random choice), ignoring the flexibility it has been given; this system should perform no worse than a system without support for range writes. At the other extreme, a disk could exhaustively consider placing a set of blocks starting at every address specified by the list of ranges. We now discuss these and other important issues.
Thus, we expect that disk implementations will vary in exactly how much
expansion is performed. For example, examine the results of a simple
experiment in Figure
. The graph shows that while
having a few choices greatly reduces average write time, having many more
choices does not yield much benefit. Thus, we believe that typical disk
schedulers will choose a subset of each range request (e.g., 2 or 4 or 8 target
destinations), thus providing a computational overhead vs. write performance
implementation trade-off. More expensive drives can include additional
machinery to expand requests to a greater number of destinations, thus
enabling competition among drive vendors.