A storage controller uses a stripe-aligned metadata to describe data
buffers in the storage controller's cache. A stripe buffer list and other
metadata structures are aligned to stripe boundaries on storage media.
Each stripe buffer list references data buffers in the cache memory of
the storage controller that are dedicated to storing the data associated
with a given disk stripe during a storage transaction. A stripe buffer
descriptor table associates each stripe buffer list with the
corresponding disk stripe through a virtual block address range and
logical disk identifier. A stripe buffer list "present bits" table and a
stripe buffer list "dirty bits" table maintain a record of the state of
individual data buffers. With these metadata structures, data buffers in
cache memory are effectively aligned with virtual disk stripes of the
storage media, making for a simpler and more efficient storage
transaction.