Sliding-window multi-class striping
AssigneeMicrosoft Technology Licensing, LLC
InventorsColin Reid, Philip A. Bernstein
Life of this patent
Estimating the term…
Abstract
A sequence of storage devices of a data store may include one or more stripesets for storing data stripes of different lengths and of different types. Each data stripe may be stored in a prefix or other portion of a stripeset. Each data stripe may be identified by an array of addresses that identify each page of the data stripe on each included storage device. When a first storage device of a stripeset becomes full, the stripeset may be shifted by removing the full storage device from the stripeset, and adding a next storage device of the data store to the stripeset.
Claims20
A method, comprising:
- storing data that includes M data pages as a stripe in a stripeset of a data store, the stripeset including N storage devices, wherein the N storage devices of the stripeset are associated in a logical sequence that includes a first storage device of the N storage devices at a logical first end of the stripeset and a second storage device of the N storage devices at a logical second end of the stripeset;
- determining that the first storage device is full;
- removing the first storage device from the stripeset;
- and
- adding a next storage device of the data store to the stripeset to be logically positioned at the logical second end of the stripeset adjacent to the second storage device.
A system, comprising:
- a data store comprising a plurality of storage devices;
- at least one processor circuit;
- and
- a memory that stores program code configured to be executed by the at least one processor circuit to perform operations, the operations including:
- storing data that includes M data pages as a stripe in a stripeset of a data store, the stripeset including N storage devices, wherein the N storage devices of the stripeset are associated in a logical sequence that includes a first storage device of the N storage devices at a logical first end of the stripeset and a second storage device of the N storage devices at a logical second end of the stripeset;
- determining that the first storage device is full;
- removing the first storage device from the stripeset;
- and
- adding a next storage device of the data store to the stripeset to be logically positioned at the logical second end of the stripeset adjacent to the second storage device.
A computer-readable storage medium comprising computer-executable instructions that, when executed by a processor, perform a method comprising:
- storing data that includes M data pages as a stripe in a stripeset of a data store, the stripeset including N storage devices, wherein the N storage devices of the stripeset are associated in a logical sequence that includes a first storage device of the N storage devices at a logical first end of the stripeset and a second storage device of the N storage devices at a logical second end of the stripeset;
- determining that the first storage device is full;
- removing the first storage device from the stripeset;
- and
- adding a next storage device of the data store to the stripeset to be logically positioned at the logical second end of the stripeset adjacent to the second storage device.
Dependencies are inferred from the claim text.