Technique for recovery of trapped storage space 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;
computing first and second keys from 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 representing the first offset range of the LUN, the second data entry representing the second offset range of the LUN;
storing, in a storage array attached to the storage system, the first and second data as first and second extents respectively;
storing a valid portion of the first extent as a third extent in the storage array; and
purging the first extent and retaining the second extent such that the second extent is accessible via a read request directed towards the LUN after purging the first extent.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique enables recovery of storage space trapped in an extent store from overlapping write requests associated with metadata describing volume logical storage addresses for data in the extent store. The metadata is organized as metadata entries in a multi-level dense tree metadata structure. When a level of the dense tree is full, the metadata entries of the level are merged with a next lower level of the dense tree in accordance with a dense tree merge operation. The technique may be invoked during the merge operation to process the metadata entries associated with the overlapping write requests involved in the merge operation. Processing of the overlapping write requests during the merge operation may partially overwrite extents which, in turn, may result in logical storage space being trapped in the extent store. The technique may perform read-modify-write (RMW) operations on the partially overwritten extents to recapture that trapped space.
52 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; computing first and second keys from 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 representing the first offset range of the LUN, the second data entry representing the second offset range of the LUN; storing, in a storage array attached to the storage system, the first and second data as first and second extents respectively; storing a valid portion of the first extent as a third extent in the storage array; and purging the first extent and retaining the second extent such that the second extent is accessible via a read request directed towards the LUN after purging the first extent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
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; and 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 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; compute first and second keys from 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 representing the first offset range of the LUN, the second data entry representing the second offset range of the LUN; store, in the storage array, the first and second data as first and second extents respectively; store a valid portion of the first extent as a third extent in the storage array; and purge the first extent and retain the second extent such that the second extent is accessible via a read request directed towards the LUN after purging the first extent. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable media containing instructions for executing on a central processing unit (CPU) of a storage system having a memory for 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; computing first and second keys from 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 representing the first offset range of the LUN, the second data entry representing the second offset range of the LUN; storing in a storage array attached to the storage system, the first and second data as first and second extents respectively; storing a valid portion of the first extent as a third extent in the storage array; and purging the first extent and retaining the second extent such that the second extent is accessible via a read request directed towards the LUN after purging the first extent.
-
Specification