Logical sector mapping in a flash storage array
AssigneePure Storage, Inc.
InventorsJohn Colgrove, John Hayes, Ethan Miller, Feng Wang
Life of this patent
Estimating the term…
Abstract
A system and method for efficiently performing user storage virtualization for data stored in a storage system including a plurality of solid-state storage devices. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels. Each level stores pairs of a key value and a pointer value. The levels are sorted by time. New records are inserted in a created newest (youngest) level. No edits are performed in-place. All levels other than the youngest may be read only. The system may further include an overlay table which identifies those keys within the mapping table that are invalid.
Claims20
A computing system comprising:
- a plurality of processes;
- and
- a mapping table organized as a plurality of time ordered levels, wherein each level of the plurality of levels comprises one or more mapping table entries, and wherein each of the plurality of entries comprises a tuple including a key that may be used to identify data stored within the system;
- wherein only a first process of the processes is permitted to modify data corresponding to a first subset of the tuple key values, and only a second process of the processes is permitted to modify data corresponding to a second subset of the tuple key values, wherein the second subset does not overlap the first subset.
A method for use in a storage system, the method comprising:
- executing a plurality of processes in the system;
- organizing a mapping table as a plurality of time ordered levels, wherein each level of the plurality of levels comprises one or more mapping table entries, and wherein each of the plurality of entries comprises a tuple including a key that may be used to identify data stored within the system;
- permitting only a first process of the processes to modify data corresponding to a first subset of the tuple key values;
- permitting only a second process of the processes to modify data corresponding to a second subset of the tuple key values, wherein the second subset does not overlap the first subset.
A non-transitory computer readable storage medium storing program instruction executable by a processor to:
- execute a plurality of processes in the system;
- organize a mapping table as a plurality of time ordered levels, wherein each level of the plurality of levels comprises one or more mapping table entries, and wherein each of the plurality of entries comprises a tuple including a key that may be used to identify data stored within the system;
- permit only a first process of the processes to modify data corresponding to a first subset of the tuple key values;
- permit only a second process of the processes to modify data corresponding to a second subset of the tuple key values, wherein the second subset does not overlap the first subset.
Dependencies are inferred from the claim text.