Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
AssigneeFusion-Io, Inc.
InventorJoshua Aune
Life of this patent
Estimating the term…
Abstract
Methods, storage controllers, and systems for grouping data stored on an array of solid-state storage elements are described. One method includes sequentially writing user data to an append point at a head of a log stored in an array of solid-state storage elements. The user data is stored in a plurality of logical erase blocks of the array. The method further includes selecting partially invalidated logical erase blocks of the array based on a characteristic for the partially invalidated logical erase blocks and arranging valid portions of the selected partially invalidated logical erase blocks into groups based on the characteristic. The method further includes writing the groups of valid portions to the log.
Claims19
A method, comprising:
- sequentially writing user data to an append point at a head of a log stored in an array of solid-state storage elements, the user data stored in one or more logical erase blocks of a plurality of logical erase blocks of the array;
- selecting partially invalidated logical erase blocks of the array based on a characteristic for the partially invalidated logical erase blocks;
- arranging valid portions of the selected partially invalidated logical erase blocks into groups based on the characteristic;
- and
- writing the groups of valid portions to the log, wherein the writing comprises writing at least some of the groups to positions of the log other than the head of the log, wherein the positions are determined based on the characteristic and based on the positions' relationship to the other positions.
An apparatus, comprising:
- a write data module that sequentially writes user data to a first append point at a head of a log stored in an array of solid-state storage elements, the user data stored in a plurality of logical erase blocks of the array;
- a selection module that selects partially invalidated logical erase blocks of the array based on a characteristic for the partially invalidated logical erase blocks;
- a grouping module that arranges valid portions of the selected partially invalidated logical erase blocks into groups based on the characteristic;
- wherein the write data module writes the groups of valid portions to the log and writes at least one of the groups to a second of a plurality of append points at positions in the log other than the head of the log, wherein the write data module selects the second append point from among others of the plurality of append points based on the characteristic and based on the second append point's position relative to the head;
- and
- wherein the write data module, the selection module, and the grouping module comprise one or more of logic hardware and a non-transitory computer readable medium having executable code stored thereon.
A system, comprising:
- an array of solid-state storage elements;
- and
- a storage controller comprising:
- a write data module configured to sequentially write user data to an append point at a head of a log stored in an array of solid-state storage elements, the user data stored in a plurality of logical erase blocks of the array;
- a selection module configured to select partially invalidated logical erase blocks of the array based on a characteristic for the partially invalidated logical erase blocks;
- a grouping module configured to arrange valid portions of the selected partially invalidated logical erase blocks into groups based on the characteristic;
- and
- wherein the write data module is configured to:
- for each group, select a position within the log, wherein the positions are selected relative to the head based on the characteristic for the groups;
- and
- write the groups to the log at the selected positions.
Dependencies are inferred from the claim text.