Storage system garbage collection and defragmentation
AssigneeCohesity, Inc.
InventorsAnubhav Gupta, Anirvan Duttagupta
Life of this patent
Estimating the term…
Abstract
Metadata of each file of a group of files of a storage and chunk file metadata are analyzed to identify one or more file segment data chunks that are not referenced by the group of files of the storage. Fragmented chunk files to be combined together are identified based at least in part on the one or more identified file segment data chunks. The chunk file metadata is updated with an update that concurrently reflects the removal of at least a portion of the one or more file segment data chunks that are not referenced by the group of files and the combination of the identified fragmented chunk files.
Claims16
A method, comprising:
- scanning, by a processor of a storage system, a plurality of tree data structures to determine a number of corresponding references associated with each data chunk included in a plurality of chunk files stored by the storage system and scanning the plurality of chunk files to determine a plurality of corresponding chunk file scores for each chunk file included in the plurality of chunk files stored by the storage system;
- determining that a subset of the plurality of chunk files have corresponding chunk file scores above a chunk file score threshold, wherein determining the plurality of corresponding chunk file scores for the plurality of chunk files stored by the storage system includes assigning a worker of a plurality of workers to a corresponding tree data structure in the plurality of tree data structures stored by the storage system, wherein at least two workers of the plurality of workers each scan a different assigned tree data structure of the plurality of tree data structures in parallel;
- including data chunks from the subset of the plurality of chunk files in a combined chunk file;
- and
- deleting chunk files included in the subset of the plurality of chunk files from which the data chunks were included in the combined chunk file.
A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:
- scanning, by a processor of a storage system, a plurality of tree data structures to determine a number of corresponding references associated with each data chunk included in a plurality of chunk files stored by the storage system and scanning the plurality of chunk files to determine a plurality of corresponding chunk file scores for each chunk file included in the plurality of chunk files stored by the storage system;
- determining that a subset of the plurality of chunk files have corresponding chunk file scores above a chunk file score threshold, wherein determining the plurality of corresponding chunk file scores for the plurality of chunk files stored by the storage system includes assigning a worker of a plurality of workers to a corresponding tree data structure in the plurality of tree data structures stored by the storage system, wherein at least two workers of the plurality of workers each scan a different assigned tree data structure of the plurality of tree data structures in parallel;
- including data chunks from the subset of the plurality of chunk files in a combined chunk file;
- and
- deleting chunk files included in the subset of the plurality of chunk files from which the data chunks were included in the combined chunk file.
A system, comprising:
- a processor configured to:
- scan a plurality of tree data structures to determine a number of corresponding references associated with each data chunk included in a plurality of chunk files stored by a storage system and scanning the plurality of chunk files to determine a plurality of corresponding chunk file scores for each chunk file included in the plurality of chunk files stored by the storage system;
- determine that a subset of the plurality of chunk files have corresponding chunk file scores above a chunk file score threshold, wherein determining the plurality of corresponding chunk file scores for the plurality of chunk files stored by the storage system includes assigning a worker of a plurality of workers to a corresponding tree data structure in the plurality of tree data structures stored by the storage system, wherein at least two workers of the plurality of workers each scan a different assigned tree data structure of the plurality of tree data structures in parallel;
- include data chunks from the subset of the plurality of chunk files in a combined chunk file;
- and
- delete chunk files included in the subset of the plurality of chunk files from which the data chunks were included in the combined chunk file;
- and
- a memory coupled to the processor and configured to provide the processor with instructions.
Dependencies are inferred from the claim text.