Technique for quantifying logical space trapped in an extent store
First Claim
1. A method comprising:
- receiving first and second write requests directed towards a logical unit (LUN), the first and second write requests having respective first and second data, the first and second write requests representing respective first and second offset ranges of the LUN, the second offset range overlapping a portion of the first offset range, the write requests processed at a storage system having a memory;
associating first and second keys with the respective first and second data;
storing the first and second keys in respective first and second data entries of a metadata structure, the first data entry having a first offset and a first original length representing the first offset range of the LUN, the second data entry having a second offset and a second original length representing the second offset range of the LUN, wherein the first data entry includes a first length decreased from the first original length by an amount of overlap of the second offset range with the first offset range;
subtracting the first length from the first original length, thereby calculating an amount of trapped logical space associated with the first data entry; and
storing the first and second data in a storage array attached to the storage system.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique quantifies logical storage space trapped in an extent store due to overlapping write requests associated with volume metadata managed by the volume layer. The volume metadata is illustratively organized as a multi-level dense tree metadata structure, wherein each level of the dense tree metadata structure (dense tree) includes volume metadata entries for storing the volume metadata. When a level of the dense tree is full, the volume metadata entries of the level are merged with a next lower level of the dense tree in accordance with a merge operation. Illustratively, the technique may be invoked during the merge operation to examine the volume metadata entries at each level of the dense tree involved in the merge and determine the LBA range overlap of the entries. To that end, the technique may include an algorithm configured to calculate the overlapping space per level and then aggregate the overlapping space of all levels involved in the merge operation to arrive at a result that quantifies the logical storage space trapped in the extent store.
37 Citations
20 Claims
-
1. A method comprising:
-
receiving first and second write requests directed towards a logical unit (LUN), the first and second write requests having respective first and second data, the first and second write requests representing respective first and second offset ranges of the LUN, the second offset range overlapping a portion of the first offset range, the write requests processed at a storage system having a memory; associating first and second keys with the respective first and second data; storing the first and second keys in respective first and second data entries of a metadata structure, the first data entry having a first offset and a first original length representing the first offset range of the LUN, the second data entry having a second offset and a second original length representing the second offset range of the LUN, wherein the first data entry includes a first length decreased from the first original length by an amount of overlap of the second offset range with the first offset range; subtracting the first length from the first original length, thereby calculating an amount of trapped logical space associated with the first data entry; and storing the first and second data in a storage array attached to the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
receiving a plurality of write requests directed towards a logical unit (LUN), the write requests each having data associated with an offset range of the LUN, the write requests processed at a storage system; associating the data of each write request with a respective key; storing each data of each write request in a storage array attached to the storage system; storing each key in a respective data entry of a metadata structure, each respective data entry representing the offset range of the write request having the data associated with the respective key; calculating an amount of overlapping offset range for each data entry that is overlapped; and accumulating the calculated amount of overlapping offset range for each data entry, thereby determining an amount of trapped logical space in the LUN.
-
-
11. A system comprising:
-
a storage system having a memory connected to a processor via a bus; a storage array coupled to the storage system; a storage I/O stack executing on the processor of the storage system, the storage I/O stack configured to; receive first and second write requests directed to a logical unit (LUN), the first and second write requests having respective first and second data, the first and second write requests representing respective first and second offset ranges of the LUN, the second offset range overlapping a portion of the first offset range; associate first and second keys with the respective first and second data; store the first and second keys in respective first and second data entries of a metadata structure, the first data entry having a first offset and a first original length representing the first offset range of the LUN, the second data entry having a second offset and a second original length representing the second offset range of the LUN, wherein the first data entry includes a first length decreased from the first original length by an amount of overlap of the second offset range with the first offset range; subtract the first length from the first original length, thereby calculating an amount of trapped logical space associated with the first data entry; and store the first and second data in the storage array. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification