IP Library Granted Patent US 10,552,379
Granted Patent B2
US 10,552,379 · App. 15/486,224 · Granted Feb 4, 2020

Optimizing data block size for deduplication

Inventor: Tamir Ram (Sunnyvale, CA)
Assignee: Western Digital Technologies, Inc.
G06F16/1748G06F3/061G06F3/067G06F3/0608G06F3/0641G06F3/0671G06F11/1453G06F11/1464G06F16/1752
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,552,379
App. No.
15/486,224
Granted
Feb 4, 2020
Kind
B2
Abstract

Provided herein is technology relating to data deduplication and particularly, but not exclusively, to methods and systems for determining an efficiently optimal size of data blocks to use for backing up a data source. Also provided herein are systems for identifying duplicate data in data backup applications.

Claims (51)

1. A method comprising:

obtaining a file of a file type;

determining a deduplication block size based on the file type, wherein the deduplication block size provides a maximum compression ratio for the file type; and

deduplicating a set of data blocks of the file based on the deduplication block size and a sliding window, wherein the sliding window moves backwards responsive to not detecting a duplicate data block.

2. The method of claim 1 , wherein deduplicating the set of data blocks comprises:

determining whether a first data block of the file is identical to a previous data block.

3. The method of claim 2 , wherein determining whether the first data block is a duplicate data block comprises:

calculating a first hash value of the first data block to identify the first data block as a potential duplicate data block; and

calculating a second hash value of the first data block to confirm that the first data block is the duplicate data block.

4. The method of claim 2 , wherein deduplicating the set of data blocks further comprises:

setting a beginning of the sliding window to an end of the first data block responsive to determining that the first data block is identical to the previous data block.

5. The method of claim 4 , wherein deduplicating the set of data blocks further comprises:

replacing the duplicate data block with a pointer to the previous data block, wherein the duplicate data block is identical to the previous data block.

6. The method of claim 1 , wherein deduplicating the set of data blocks comprises:

moving the sliding window backwards by one byte responsive to not detecting the duplicate data block.

7. The method of claim 1 , wherein a size of the sliding window is the same as the deduplication block size.

8. The method of claim 1 , wherein determining the deduplication block size comprises:

determining a plurality of compression ratios for a test file of the file type, wherein each compression ratio is associated with a test block size;

determining a maximum compression ratio from the plurality of compression ratios; and

selecting a first block size associated with the maximum compression ratio as the deduplication block size.

9. An apparatus, comprising:

a memory configured to store a table associating a plurality of file types with a plurality of deduplication block sizes; and

a processor configured to:

obtain a file of a file type;

determine a deduplication block size based on the file type, wherein the deduplication block size provides a maximum compression ratio for the file type; and

deduplicate a set of data blocks of the file based on the deduplication block size and a sliding window, wherein the sliding window moves backwards responsive to not detecting a duplicate data block.

10. The apparatus of claim 9 , wherein the processor is configured to deduplicate the set of data blocks by:

determining whether a first data block of the file is identical to a previous data block.

11. The apparatus of claim 10 , wherein the processor is configured to determine whether the first data block is a duplicate data block by:

calculating a first hash value of the first data block to identify the first data block as a potential duplicate data block; and

calculating a second hash value of the first data block to confirm that the first data block is the duplicate data block.

12. The apparatus of claim 10 , wherein the processor is further configured to deduplicate the set of data blocks by:

setting a beginning of the sliding window to an end of the first data block responsive to determining that the first data block is identical to the previous data block.

13. The apparatus of claim 12 , wherein the processor is further configured to deduplicate the set of data blocks by:

replacing the duplicate data block with a pointer to the previous data block, wherein the duplicate data block is identical to the previous data block.

14. The apparatus of claim 9 , wherein the processor is configured to deduplicate the set of data blocks by:

moving the sliding window backwards by one byte responsive to not detecting the duplicate data block.

15. The apparatus of claim 9 , wherein a size of the sliding window is the same as the deduplication block size.

16. The apparatus of claim 9 , wherein determining the deduplication block size comprises:

determining a plurality of compression ratios for a test file of the file type, wherein each compression ratio is associated with a test block size;

determining a maximum compression ratio from the plurality of compression ratios; and

selecting a first block size associated with the maximum compression ratio as the deduplication block size.

17. An apparatus, comprising:

means for determining a deduplication block size based on a file type, wherein the deduplication block size provides a maximum compression ratio for the file type; and

means for deduplicating a set of data blocks of a file based on the determined deduplication block size and a sliding window, wherein the sliding window moves backwards responsive to not detecting a duplicate data block.

18. The apparatus of claim 17 , wherein deduplicating the set of data blocks comprises:

determining whether a first data block of the file is identical to a previous data block.

19. The apparatus of claim 18 , wherein deduplicating the set of data blocks further comprises:

setting a beginning of the sliding window to an end of the first data block responsive to determining that the first data block is identical to the previous data block.

20. The apparatus of claim 17 , wherein deduplicating the set of data blocks comprises:

moving the sliding window backwards by one byte responsive to not detecting the duplicate data block.

Assignments (9)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
Continuity (4)
Continuation 13802167 · Mar 13, 2013
Provisional Application 61708295 · Oct 1, 2012
Provisional Application 61708255 · Oct 1, 2012
Related Publication 20170286443A1 · Oct 5, 2017