IP Library Granted Patent US 8,280,860
Granted Patent B2
US 8,280,860 · App. 12/946,779 · Granted Oct 2, 2012

Method for increasing deduplication speed on data streams fragmented by shuffling

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 8,280,860
App. No.
12/946,779
Granted
Oct 2, 2012
Kind
B2
Abstract

A computer-implemented method for deduplicating an incoming data sequence can include the steps of storing signature values for a plurality of data blocklets of a parent data sequence in a deduplication index, sequentially storing signature values for at least some of the plurality of data blocklets of the parent data sequence in a first storage location outside of the deduplication index, determining that a first data blocklet in the incoming data sequence is absent from the parent data sequence, storing a signature value for the first data blocklet in a second storage location outside of the deduplication index, storing a guarded link linking the first data blocklet to the second data blocklet into the second storage location, determining that a second data blocklet that follows the first data blocklet in the incoming data sequence is present in the parent data sequence, the second data blocklet having a signature value that is stored in the first storage location, and copying at least a portion of the contents of the first storage location and the second storage location into a cache to expedite access during deduplication of the incoming data sequence.

Claims (47)

1. A computer-implemented method for deduplicating an incoming data sequence, the method comprising the steps of:

storing signature values for a plurality of data blocklets of a parent data sequence in a deduplication index;

sequentially storing signature values for at least some of the plurality of data blocklets of the parent data sequence in a first storage location outside of the deduplication index;

determining that a first data blocklet in the incoming data sequence is absent from the parent data sequence;

storing a signature value for the first data blocklet in a second storage location outside of the deduplication index;

determining that a second data blocklet that follows the first data blocklet in the incoming data sequence is present in the parent data sequence, the second data blocklet having a signature value that is stored in the first storage location; and

copying at least a portion of the contents of the second storage location into a cache to expedite access during deduplication of the incoming data sequence.

2. The method of claim 1 wherein the cache is included as part of a computer usable volatile memory.

3. The method of claim 1 wherein at least one of the storage locations includes a cluster header.

4. The method of claim 1 wherein each of the storage locations includes a cluster header.

5. The method of claim 1 wherein the second storage location includes a cluster header that is designated to only receive data blocklets that are absent from the parent data sequence.

6. The method of claim 1 wherein the first data blocklet immediately follows another data blocklet that was found to be present in the parent data sequence.

7. The method of claim 1 wherein the second data blocklet immediately follows the first data blocklet in the incoming data sequence.

8. The method of claim 1 wherein the second data blocklet is spaced apart from the first data blocklet in the incoming data sequence by at least one other data blocklet.

9. The method of claim 1 wherein the step of copying includes copying the entire contents of the second storage location into the cache.

10. The method of claim 1 further comprising the step of storing a link in the first storage location, the link linking one of the data blocklets of the parent data sequence to the first data blocklet.

11. The method of claim 1 further comprising the step of storing a guarded link in the second storage location, the guarded link linking the first data blocklet to the second data blocklet.

12. The method of claim 11 wherein the step of copying includes copying the guarded link from the second storage location into the cache.

13. A deduplication engine of a computer system, the deduplication engine utilizing the method of claim 1 to deduplicate the incoming data sequence.

14. A computer-implemented method for deduplicating an incoming data sequence, the method comprising the steps of:

storing signature values for a plurality of data blocklets of a parent data sequence in a deduplication index;

sequentially storing signature values for at least some of the plurality of data blocklets of the parent data sequence in a first storage location outside of the deduplication index;

locating a transition data blocklet that is absent from the parent data sequence;

sequentially storing a signature value for the transition data blocklet into a second storage location outside the deduplication index;

determining that a signature value for a data blocklet that follows the transition data blocklet is included in the first storage location; and

copying at least a portion of the contents of the second storage location into a cache to expedite access during deduplication of the incoming data sequence.

15. The method of claim 14 wherein the data blocklet that follows the transition data blocklet is immediately adjacent to the transition data blocklet.

16. The method of claim 14 wherein the cache is included as part of a computer usable volatile memory.

17. The method of claim 14 wherein at least one of the storage locations includes a cluster header.

18. The method of claim 14 wherein each of the storage locations includes a cluster header.

19. The method of claim 14 wherein the second storage location includes a cluster header that is designated to only receive data blocklets that are absent from the parent data sequence.

20. The method of claim 14 further comprising the step of determining that a data blocklet that immediately precedes the transition data blocklet in the incoming data sequence is present in the parent data sequence.

21. The method of claim 14 wherein the step of copying includes copying the entire contents of the second storage location into the cache.

22. The method of claim 14 further comprising the step of storing a link in the first storage location, the link linking one of the data blocklets of the parent data sequence to the transition data blocklet.

23. The method of claim 14 further comprising the step of storing a guarded link in the second storage location, the guarded link linking the transition data blocklet to the data blocklet that follows the transition data blocklet.

24. The method of claim 23 wherein the step of copying includes copying the guarded link from the second storage location into the cache.

25. A deduplication engine of a computer system, the deduplication engine utilizing the method of claim 14 to deduplicate the incoming data sequence.

26. A computer-implemented method for deduplicating an incoming data sequence, the method comprising the steps of:

storing signature values for a plurality of data blocklets of a parent data sequence in a deduplication index;

sequentially storing signature values for at least some of the plurality of data blocklets of the parent data sequence in a first cluster header outside of the deduplication index;

locating a transition data blocklet that is absent from the parent data sequence;

determining that a data blocklet that immediately precedes the transition data blocklet in the incoming data sequence is present in the parent data sequence;

determining that a signature value for a data blocklet that immediately follows the transition data blocklet is included in the first cluster header;

storing a signature value for the transition data blocklet into a second cluster header that is designated to receive only transition data blocklets that are absent from the parent data sequence;

storing a link in a first storage location, the link linking one of the data blocklets of the parent data sequence to the transition data blocklet;

storing a guarded link in the second cluster header, the guarded link linking the transition data blocklet to the data blocklet that follows the transition data blocklet; and

copying the contents of the second cluster header into a cache that is embedded in a computer usable volatile memory to expedite access during deduplication of the incoming data sequence.

Assignments (14)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 18, 2025
From: QUANTUM CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 074024/0084 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 40473/0378 Recorded Oct 8, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 073061/0454 →
TERMINATION AND RELEASE OF AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 48029/0525 Recorded Aug 19, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 072542/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2025
From: BLUE TORCH FINANCE LLC, AS AGENT FOR THE SECURED PARTIES
To: ALTER DOMUS (US) LLC, AS AGENT FOR THE SECURED PARTIES
Reel/Frame 071019/0850 →
RELEASE OF SECURITY INTEREST Recorded Aug 10, 2021
From: U.S. BANK NATIONAL ASSOCIATION
To: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
Reel/Frame 057142/0252 →
SECURITY INTEREST Recorded Aug 5, 2021
From: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
To: BLUE TORCH FINANCE LLC, AS AGENT
Reel/Frame 057107/0001 →
SECURITY INTEREST Recorded Jan 8, 2019
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 048029/0525 →
SECURITY INTEREST Recorded Dec 27, 2018
From: QUANTUM CORPORATION, AS GRANTOR; QUANTUM LTO HOLDINGS, LLC, AS GRANTOR
To: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 049153/0518 →
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2018
From: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 047988/0642 →
RELEASE OF SECURITY INTEREST Recorded Oct 25, 2016
From: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 040474/0079 →
SECURITY INTEREST Recorded Oct 25, 2016
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 040473/0378 →
SECURITY INTEREST Recorded Oct 21, 2016
From: QUANTUM CORPORATION
To: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
Reel/Frame 040451/0183 →
SECURITY AGREEMENT Recorded Mar 31, 2012
From: QUANTUM CORPORATION
To: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
Reel/Frame 027967/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2010
From: SPACKMAN, STEPHEN P.; DOERNER, DON
To: QUANTUM CORPORATION
Reel/Frame 025365/0111 →