Content aligned block-based deduplication
First Claim
Patent Images
1. A system configured to perform block-aligned deduplication, the system comprising:
- a storage manager implemented in computer hardware and comprising one or more hardware processors, the storage manager configured to;
position a window with respect to a data segment, the data segment comprising a set of blocks, the window comprising a first plurality of blocks from the set of blocks, the first plurality of blocks less than the set of blocks, the window corresponding in size to a deduplication block size;
perform a block alignment function on the first plurality of blocks;
in response to determining that a result of the block alignment function satisfies a set of criteria;
designate the first plurality of blocks as a deduplication block; and
move the window of the data segment with respect to the data segment by an amount equal to the deduplication block size, wherein the moved window comprises a second plurality of blocks, the second plurality of blocks differing in its entirety from the first plurality of blocks; and
in response to determining that the result of the block alignment function does not satisfy the set of criteria;
move the window of the data segment with respect to the data segment by an amount less than the deduplication block size, wherein the moved window comprises a third plurality of blocks, the third plurality of blocks partially overlapping with the first plurality of blocks; and
perform the block alignment function on the third plurality of blocks.
2 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.
-
Citations
20 Claims
-
1. A system configured to perform block-aligned deduplication, the system comprising:
a storage manager implemented in computer hardware and comprising one or more hardware processors, the storage manager configured to; position a window with respect to a data segment, the data segment comprising a set of blocks, the window comprising a first plurality of blocks from the set of blocks, the first plurality of blocks less than the set of blocks, the window corresponding in size to a deduplication block size; perform a block alignment function on the first plurality of blocks; in response to determining that a result of the block alignment function satisfies a set of criteria; designate the first plurality of blocks as a deduplication block; and move the window of the data segment with respect to the data segment by an amount equal to the deduplication block size, wherein the moved window comprises a second plurality of blocks, the second plurality of blocks differing in its entirety from the first plurality of blocks; and in response to determining that the result of the block alignment function does not satisfy the set of criteria; move the window of the data segment with respect to the data segment by an amount less than the deduplication block size, wherein the moved window comprises a third plurality of blocks, the third plurality of blocks partially overlapping with the first plurality of blocks; and perform the block alignment function on the third plurality of blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A computer-implemented method of performing block-aligned deduplication comprising:
as implemented by a storage manager comprising one or more hardware processor and configured with specific computer-executable instructions, positioning a window with respect to a data segment, the data segment comprising a set of blocks, the window comprising a first plurality of blocks from the set of blocks, the first plurality of blocks less than the set of blocks, the window corresponding in size to a deduplication block size; performing a block alignment function on the first plurality of blocks; in response to determining that a result of the block alignment function satisfies a set of criteria; designating the first plurality of blocks as a deduplication block; and moving the window of the data segment with respect to the data segment by an amount equal to the deduplication block size, wherein the moved window comprises a second plurality of blocks, the second plurality of blocks differing in its entirety from the first plurality of blocks; and in response to determining that the result of the block alignment function does not satisfy the set of criteria; moving the window of the data segment with respect to the data segment by an amount less than the deduplication block size, wherein the moved window comprises a third plurality of blocks, the third plurality of blocks partially overlapping with the first plurality of blocks; and performing the block alignment function on the third plurality of blocks. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
Specification