17.05.2014 Views

Matching Application Access Patterns to Storage Device ...

Matching Application Access Patterns to Storage Device ...

Matching Application Access Patterns to Storage Device ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

30 · <strong>Matching</strong> <strong>Application</strong> <strong>Access</strong> <strong>Patterns</strong> <strong>to</strong> S<strong>to</strong>rage <strong>Device</strong> Characteristics<br />

Dynamic decisions that depend on the current state of the s<strong>to</strong>rage device (e.g.,<br />

current position of the read/write heads, or the content of prefetch buffers) should<br />

be made below the interface. A s<strong>to</strong>rage manager should relegate these devicespecific<br />

decisions (e.g., I/O request scheduling) <strong>to</strong> the s<strong>to</strong>rage device where they<br />

can be made more efficiently. Instead, the SM is only concerned with generating<br />

I/Os that can be executed efficiently. How these I/Os are executed, however, is<br />

decided by the device.<br />

The FFS s<strong>to</strong>rage manager example in Figure 3.2 includes a C-LOOK scheduling<br />

algorithm (a variant of a SCAN algorithm [Denning 1967], which is implemented<br />

as a part of the diskqsort() routine). The FFS scheduler makes its decisions on a<br />

crude notion of relative distances in the LBN space. Instead, the scheduling should<br />

be pushed down <strong>to</strong> the device, where it can be made more efficiently with more<br />

detailed information (for instance, by using a SPTF scheduler [Seltzer et al. 1990;<br />

Worthing<strong>to</strong>n et al. 1994], which is built in<strong>to</strong> modern disk drive firmware [Quantum<br />

Corporation 1999]).<br />

3.1.4 LBN address space annotations<br />

A s<strong>to</strong>rage device exports static performance attributes that annotate the linear<br />

address space of fixed-size blocks, identified by a logical block number (LBN). This<br />

annotation creates relations among the individual LBNs of the s<strong>to</strong>rage interface.<br />

Given an attribute with particular semantics and a single LBN, other LBNs<br />

satisfying the relation described by the attribute are returned.<br />

This dissertation describes in detail two examples of these attributes and evaluates<br />

the benefits these attributes have for a variety of applications and workloads.<br />

– access delay boundaries<br />

This attribute denotes preferred s<strong>to</strong>rage request access patterns (i.e., the<br />

sets of contiguous LBNs that yield most efficient accesses). This attribute<br />

encapsulates traxtent (an extent of LBNs mapped on<strong>to</strong> one disk drive track)<br />

[Schindler et al. 2002] or a stripe unit in RAID configurations. This attribute<br />

captures the following notions: (i) requests that are exactly aligned on the<br />

reported boundaries and span all the blocks of a single unit are most efficient,<br />

and (ii) requests smaller than the preferred groupings, should be aligned on<br />

the boundary. If they are not aligned, they should not cross it.<br />

– parallelism<br />

Given an LBN, this attribute describes which other LBNs can be accessed<br />

in parallel. The level of parallelism depends on the striping and RAID groups<br />

and the number of spindles. For example, a logical volume of a s<strong>to</strong>rage array

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

Saved successfully!

Ooh no, something went wrong!