Content aligned block-based deduplication
First Claim
Patent Images
1. A deduplication system configured to determine deduplication block alignments within a data segment, the system comprising:
- one or more computer processors comprising computer hardware;
a duplication module being executed by the one or more computer processors and configured to;
select one or more first block alignment indicator values for a deduplication block alignment function;
iteratively perform the deduplication block alignment function on data within a sliding window of the data segment, wherein the sliding window comprises a sliding boundary;
establish a deduplication data block based at least in part on a determination that an output of the deduplication block alignment function performed on the data matches one of the one or more first block alignment indicator values, indicating that a deduplication block alignment has been found; and
deduplicate the deduplication data block; and
a criteria adjustment module configured to select one or more second block alignment indicator values to replace the one or more first block alignment indicator values based at least in part on a determination that, for a threshold number of the iterative performances of the deduplication block alignment function, the output of the deduplication block alignment function performed on the data within the sliding window does not match any of the one or more first block alignment indicator values, wherein the one or more second block alignment indicator values are used instead of the one or more first block alignment indicator values for subsequent iterations of the deduplication block alignment function.
5 Assignments
0 Petitions
Accused Products
Abstract
A content alignment system according to certain embodiments aligns a sliding window at the beginning of a data segment. The content alignment system performs a block alignment function on the data within the sliding window. A deduplication block is established if the output of the block alignment function meets a predetermined criteria. At least part of a gap is established if the output of the block alignment function does not meet the predetermined criteria. The predetermined criteria is changed if a threshold number of outputs fail to meet the predetermined criteria.
336 Citations
17 Claims
-
1. A deduplication system configured to determine deduplication block alignments within a data segment, the system comprising:
-
one or more computer processors comprising computer hardware; a duplication module being executed by the one or more computer processors and configured to; select one or more first block alignment indicator values for a deduplication block alignment function; iteratively perform the deduplication block alignment function on data within a sliding window of the data segment, wherein the sliding window comprises a sliding boundary; establish a deduplication data block based at least in part on a determination that an output of the deduplication block alignment function performed on the data matches one of the one or more first block alignment indicator values, indicating that a deduplication block alignment has been found; and deduplicate the deduplication data block; and a criteria adjustment module configured to select one or more second block alignment indicator values to replace the one or more first block alignment indicator values based at least in part on a determination that, for a threshold number of the iterative performances of the deduplication block alignment function, the output of the deduplication block alignment function performed on the data within the sliding window does not match any of the one or more first block alignment indicator values, wherein the one or more second block alignment indicator values are used instead of the one or more first block alignment indicator values for subsequent iterations of the deduplication block alignment function. - View Dependent Claims (2, 3, 4, 5, 6, 15, 16)
-
-
7. A method of determining deduplication block alignments within a data segment, the method comprising:
-
selecting one or more first block alignment indicator values of a deduplication block alignment function; iteratively performing the deduplication block alignment function on data within a sliding window in the data segment, wherein the sliding window comprises a sliding boundary; determining with one or more computer processors whether an output of the deduplication block alignment function performed on the data within the sliding window falls within the one or more first block alignment indicator values; establishing with one or more computer processors a deduplication data block based at least in part on determining that the output of the deduplication block alignment function matches one of the one or more first block alignment indicator values, indicating that a deduplication block alignment has been found; and selecting one or more second block alignment indicator values to replace the one or more first block alignment indicator values based at least in part on determining, for a threshold number of the iterative performances of the deduplication block alignment function, the output of the deduplication block alignment function does not match any of the one or more first block alignment indicator values, wherein the one or more second block alignment indicator values are used instead of the one or more first block alignment indicator values for subsequent iterations of the deduplication block alignment function; and deduplicating the deduplication data block. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
17. A method of generating a deduplication data block within a data segment, the method comprising:
-
selecting one or more first block alignment indicator values of a deduplication block alignment function; and iteratively performing the deduplication block alignment function on data within a sliding window in the data segment, the sliding window comprising a sliding boundary; determining with one or more computer processors whether an output of the deduplication block alignment function performed on the data within the sliding window matches at least one of the one or more first block alignment indicator values, indicating that a deduplication block alignment has been found; establishing with one or more computer processors a first deduplication data block based at least in part on determining that the output of the deduplication block alignment function matches the at least one of the one or more first block alignment indicator values; establishing with one or more computer processors a second deduplication data block based at least in part on determining, for a threshold number of the iterative performances of the deduplication block alignment function, that the output of the deduplication block alignment function does not match the at least one of the one or more first block alignment indicator values; and deduplicating at least one of the first deduplication data block or the second deduplication data block.
-
Specification