Distributed data deduplication reference counting
AssigneeInternational Business Machines Corporation
InventorsAsaf Porat-Stoler, Yosef Shatsky, Avraham Bab-Dinitz, Omer Haklay
Life of this patent
Estimating the term…
Abstract
Methods that can provide distributed data deduplication reference counting are disclosed herein. One method includes generating, by a processor, a secondary reference in response to a determination that a data chunk is a copy of the primary reference in which the primary reference includes a pointer to an existing data chunk stored on a storage device. The method further includes incrementing a secondary reference counter on the primary reference in response to generating the secondary reference. Apparatus and computer program products that can include, perform, and/or implement the methods are also disclosed herein.
Claims18
An apparatus, comprising:
- a deduplication module that determines whether a first data chunk is a direct copy of an original data chunk or a copy of a direct copy of the original data chunk,
- wherein:
- a direct copy defines a primary reference, and
- a copy of a direct copy defines a secondary reference;
- a reference management module that:
- in response to determining that the first data chunk is a copy of a particular direct copy and is not a direct copy of the original data chunk, generates a new secondary reference, and
- in response to determining that the first data chunk is a direct copy of the original data and is not a copy of a direct copy, generates a first additional primary reference, wherein the first additional primary reference is another direct copy of the original data chunk;
- and
- a counter module that:
- increments a respective secondary reference counter associated with the particular direct copy that the first data chunk is a copy of in response to generating the new secondary reference, and
- increments the primary reference counter associated with the original data in response to generating the first additional primary reference,
- wherein at least a portion of said modules comprises one or more of a set of hardware circuits, a set of programmable hardware devices, and executable code stored on a set of non-transitory computer-readable storage media.
The apparatus of 4, wherein:
- the reference management module is further configured to generate a second additional primary reference in response to a determination that a second data chunk is a further direct copy of the original data chunk;
- and
- the counter module is further configured to increment the primary reference counter associated with the original data chunk in response to the second additional primary reference being generated.
A method, comprising:
- determining, by a processor, whether a first data chunk is a direct copy of an original data chunk or a copy of one of a direct copy of the original data chunk, wherein:
- a direct copy defines a primary reference, and
- a copy of a direct copy defines a secondary reference;
- generating, by the processor, a new secondary reference that is a copy of the first primary in response to determining that the first data chunk is a copy of a particular direct copy and is not a direct copy of the original data chunk;
- generating, by the processor, a first additional primary reference in response to determining that the first data chunk is a direct copy of the original data and is not a copy of a direct copy, wherein the first additional primary reference is another direct copy of the original data chunk;
- and
- incrementing, by the processor, a respective secondary reference counter associated with the particular direct copy that the first data chunk is a copy of in response to generating the new secondary reference;
- and
- incrementing, by the processor, the primary reference counter associated with the original data in response to generating the first additional primary reference.
The method of 9, further comprising:
- generating a second additional primary reference in response to a determination that a second data chunk is a further direct copy of the original data chunk;
- and
- incrementing the primary reference counter associated with the original data chunk in response to the second additional primary reference being generated.
A computer program product comprising a computer-readable storage medium including program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:
- determine whether a first data chunk is a direct copy of an original data chunk or a copy of a direct copy of the original data chunk, wherein:
- a direct copy defines a primary reference, and
- a copy of a direct copy defines a secondary reference;
- generate a new secondary reference in response to determining that the first data chunk is a copy of a particular direct copy and is not a direct copy of the original data chunk;
- generate a first additional primary reference in response to determining that the first data chunk is a direct copy of the original data and is not a copy of a direct copy, wherein the first additional primary reference is a another direct copy of the original data chunk;
- increment a respective secondary reference counter associated with the particular direct copy that the first data chunk is a copy of in response to generating the new secondary reference;
- and
- increment the primary reference counter associated with the original data in response to generating the first additional primary reference.
The computer program product of 18, wherein the program instructions further cause the processor to:
- generate a second additional primary reference in response to a determination that a second data chunk is a further direct copy of the original data chunk;
- and
- increment the primary reference counter associated with the original data chunk in response to the second additional primary reference being generated.
Dependencies are inferred from the claim text.