IP Library Granted Patent US 7,979,670
Granted Patent B2
US 7,979,670 · App. 12/019,527 · Granted Jul 12, 2011

Methods and systems for vectored data de-duplication

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 7,979,670
App. No.
12/019,527
Granted
Jul 12, 2011
Kind
B2
Abstract

The present invention is directed toward methods and systems for data de-duplication. More particularly, in various embodiments, the present invention provides systems and methods for data de-duplication that may utilize a vectoring method for data de-duplication wherein a stream of data is divided into “data sets” or blocks. For each block, a code, such as a hash or cyclic redundancy code may be calculated and stored. The first block of the set may be written normally and its address and hash can be stored and noted. Subsequent block hashes may be compared with previously written block hashes.

Claims (48)

1. A method of data de-duplication, comprising:

determining a code for a block of data being processed;

comparing the code for the block of data being processed to a code for a previously processed block of data;

upon determining that the code for the block of data being processed matches the code for the previously processed block of data, storing a vector in a block of memory allocated for the block of data being processed, where the vector points to the previously processed block of data, where the vector contains fewer bits than the previously processed block of data, where the vector does not contain the code, and where the vector contains fewer bits than the block of memory allocated for the block of data being processed, and

configuring the block of memory allocated for the block of data being processed to store additional data, the additional data being separate from and not a part of the vector.

2. The method of claim 1 , where the code for the block of data being processed and the code for the previously processed block of data are determined using a hash function.

3. The method of claim 1 , where the code for the block of data being processed and the code for the previously processed block of data comprise a cyclic redundancy code.

4. The method of claim 1 , comprising dividing an incoming data stream into blocks of data.

5. The method of claim 4 , where blocks of data comprise the same number of bits.

6. The method of claim 1 , comprising comparing the block of data being processed to the previously processed block of data when the code for the block of data being processed matches the code for the previously processed block of data.

7. The method of claim 6 , where comparing the block of data being processed to the previously processed block of data comprises calculating additional codes for the block of data being processed and the previously processed block of data and comparing the additional codes.

8. The method of claim 7 , where the additional codes comprise codes made up of more bits than the codes used in the first comparison.

9. The method of claim 1 , where the vector comprises a pointer to a previous physical block.

10. The method of claim 1 , where the vector comprises a pointer to a previous logical block.

11. The method of claim 10 , where the vector comprises a start address and an offset.

12. A data de-duplication device, comprising:

a data receiving device configured to receive a stream of data;

a data processing device configured to:

determine a code for a block of data being processed;

compare the code for the block of data being processed to a code for a previously processed block of data;

upon determining that the code for the block of data being processed matches the code for the previously processed block of data, to store a vector in a block of memory allocated for the block of data being processed, where the vector points to the previously processed block of data, where the vector contains fewer bits than the previously processed block of data, and where the vector contains fewer bits than the block of memory allocated for the block of data being processed to store additional data; and

configure the block of memory allocated for the block of data being processed to store additional data associated with a different block of data.

13. The data de-duplication device of claim 12 , where the data processing device determines the code for the block of data being processed and the code for the previously processed block of data using a hash function.

14. The data de-duplication device of claim 12 , where the data processing device determines the code for the block of data being processed and the code for the previously processed block of data using a cyclic redundancy code.

15. The data de-duplication device of claim 12 , where the data processing device divides an incoming data stream into blocks of data.

16. The data de-duplication device of claim 15 , where the data processing device divides the incoming data stream into blocks of data comprising the same number of bits.

17. The data de-duplication device of claim 12 , where the data processing device compares the block of data being processed to the previously processed block of data when the code for the block of data being processed and the code for the previously processed block of data match.

18. The data de-duplication device of claim 17 , where the data processing device compares the block of data being processed to the previously processed block of data by calculating additional codes for the block of data being processed and the previously processed block of data and comparing the additional codes.

19. The data de-duplication device of claim 18 , where the additional codes calculated by the processing device comprise codes made up of more bits than the codes used in the first comparison.

20. The data de-duplication device of claim 12 , where the vector comprises a pointer to a previous physical block.

21. The data de-duplication device of claim 12 , where the vector comprises a pointer to a previous logical block.

22. The data de-duplication device of claim 12 , where the vector further comprises a start address and an offset.

23. The data de-duplication device of claim 12 , where the data processing device comprises one of, a disk drive and a tape drive.

24. The data de-duplication device of claim 12 , where the data associated with the different block of data is a vector associated with the different block of data.

25. The data de-duplication device of claim 12 , where the data processing device comprises a virtual tape drive.

26. A data de-duplication system, comprising:

a data transmission device configured to transmit a stream of data;

a data storage device configured to store blocks of data and codes for blocks of data;

a data de-duplication device comprising:

a data receiving device configured to receive the stream of data;

a data processing device, configured to:

determine a code for a block of data being processed;

compare the code for the block of data being processed to a code for a previously processed block of data;

upon determining that the code for the block of data being processed matches the code for the previously processed block of data, to store a vector in a block of memory allocated for the block of data being processed, where the vector points to the previously processed block of data, where the vector contains fewer bits than the previously processed block of data, and where the vector contains fewer bits than the block of memory allocated for the block of data being processed to store additional data; and

configure the block of memory allocated for the block of data being processed to store additional data associated with one or more additional blocks of data.

27. The data de-duplication system of claim 26 , where the data processing device determines the code for the block of data being processed and the code for the previously processed block of data using a hash function.

28. The data de-duplication system of claim 26 , where the data processing device determines the code for the block of data being processed and the code for the previously processed block of data using a cyclic redundancy code.

29. The data de-duplication system of claim 26 , where the data processing device divides an incoming data stream into blocks of data.

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 →
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2018
From: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 047988/0642 →
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 →
SECURITY INTEREST Recorded Oct 25, 2016
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 040473/0378 →
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 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 Apr 2, 2008
From: SALIBA, GEORGE; WHITE, THERON
To: QUANTUM CORPORATION
Reel/Frame 020745/0908 →