Mapping in a storage system
First Claim
1. A computer system comprising:
- a data storage medium;
an overlay table;
a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and
a data storage controller coupled to the data storage medium;
wherein in response to detecting a flattening condition, the data storage controller is configured to;
identify a group of two or more levels of the plurality of levels which are logically adjacent in time;
create a new level in the plurality of levels;
insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and
utilize a filtering condition to determine which of the first records are inserted into the new level, wherein the filtering condition comprises a validity of a given record as determined by the overlay table.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for maintaining a mapping table in a data storage subsystem. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels which may be logically ordered by time. Each level stores pairs of a key value and a pointer value. New records are inserted in a created new (youngest) level. All levels other than the youngest may be read only. In response to detecting a flattening condition, a data storage controller is configured to identify a group of two or more adjacent levels of the plurality of levels for flattening which are logically adjacent in time. A new level is created and one or more records stored within the group are stored in the new level, in response to detecting each of the one or more records stores a unique key among keys stored within the group.
257 Citations
37 Claims
-
1. A computer system comprising:
-
a data storage medium; an overlay table; a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and a data storage controller coupled to the data storage medium; wherein in response to detecting a flattening condition, the data storage controller is configured to; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and utilize a filtering condition to determine which of the first records are inserted into the new level, wherein the filtering condition comprises a validity of a given record as determined by the overlay table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for use in a storage system, the method comprising:
-
storing a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and responsive to detecting a flattening condition; identifying a group of two or more levels of the plurality of levels which are logically adjacent in time; creating a new level in the plurality of levels; and inserting one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; utilizing a filtering condition to determine which of the first records are inserted into the new level, wherein the filtering condition comprises a validity of a given record as determined by an overlay table. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A non-transitory computer readable storage medium storing program instruction executable by a processor to:
-
store a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and responsive to detecting a flattening condition; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and utilize a filtering condition to determine which of the first records are inserted into the new level, wherein the filtering condition comprises a validity of a given record as determined by an overlay table. - View Dependent Claims (30, 31, 32)
-
-
33. A computer system comprising:
-
a data storage medium; a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and a data storage controller coupled to the data storage medium; wherein in response to detecting a flattening condition, the data storage controller is configured to; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and insert one or more second records stored within the group into the new level, in response to detecting each of the one or more second records; corresponds to two or more records storing a same non-unique key within the group; and is in a youngest level containing a record with the non-unique key of the group; wherein at least some of the first and second records inserted into the new level are modified based on entries in an overlay table.
-
-
34. A computer system comprising:
-
a data storage medium; a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and a data storage controller coupled to the data storage medium; wherein in response to detecting a flattening condition, the data storage controller is configured to; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and insert one or more second records stored within the group into the new level, in response to detecting each of the one or more second records; corresponds to two or more records storing a same non-unique key within the group; and is in a youngest level containing a record with the non-unique key of the group; wherein a single record within the mapping table corresponds to a range of key values; wherein at least one record corresponding to a range of key values in the group is replaced in the new level by a plurality of records corresponding to subranges of the at least one record.
-
-
35. A computer system comprising:
-
a data storage medium; a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and a data storage controller coupled to the data storage medium; wherein in response to detecting a flattening condition, the data storage controller is configured to; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and insert one or more second records stored within the group into the new level, in response to detecting each of the one or more second records; corresponds to two or more records storing a same non-unique key within the group; and is in a youngest level containing a record with the non-unique key of the group; wherein at least one record in the group is replaced by a new record in the new level with a range smaller than that of the one record based on one or more entries in an overlay table.
-
-
36. A computer system comprising:
-
a data storage medium; a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and a data storage controller coupled to the data storage medium; wherein in response to detecting a flattening condition, the data storage controller is configured to; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; and insert one or more second records stored within the group into the new level, in response to detecting each of the one or more second records; corresponds to two or more records storing a same non-unique key within the group; and is in a youngest level containing a record with the non-unique key of the group; wherein a given plurality of records in the group are replaced by a single record in the new level whose range covers all ranges covered by the given plurality of records.
-
-
37. A computer system comprising:
-
a data storage medium; a mapping table organized as a plurality of levels, each level of the plurality of levels comprising one or more mapping table entries, where each of the plurality of entries comprises a tuple including a key; and a data storage controller coupled to the data storage medium; wherein in response to detecting a flattening condition, the data storage controller is configured to; identify a group of two or more levels of the plurality of levels which are logically adjacent in time; create a new level in the plurality of levels; insert one or more first records stored within the group into the new level, in response to detecting each of the one or more first records stores a unique key among keys stored within the group; utilize a filtering condition to determine which of the first records are inserted into the new level, wherein the filtering condition is based at least in part on a current or predicted number of entries in the new level.
-
Specification