IP Library Granted Patent US 7,814,129
Granted Patent B2
US 7,814,129 · App. 11/373,420 · Granted Oct 12, 2010

Method and apparatus for storing data with reduced redundancy using data clusters

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,814,129
App. No.
11/373,420
Granted
Oct 12, 2010
Kind
B2
Abstract

Method and apparatus for storing data in a reduced redundancy form. Binary Large Objects (BLOBs) are partitioned into subblocks according to a partitioning method, and the subblocks are stored in subblock clusters. Each BLOB is represented as a list of spans of subblocks which identifies a contiguous sequence of subblocks within a cluster. Storage redundancy can be reduced because the spans of two different BLOBs can refer to the same subblocks. An index may be used to map subblock hashes to subblock cluster numbers.

Claims (34)

1. A method, comprising:

dividing a Binary Large Object (BLOB) into a plurality of subblocks, where the BLOB (b) is divided by partitioning b into a plurality of subblocks, where at least one position k|k+1 in b for which b[k−A+1 . . . k+B] satisfies a predetermined constraint, where A and B are natural numbers;

storing the plurality of subblocks in a plurality of clusters, where two or more subblocks are stored in a cluster as a contiguous sequence of bytes with no intervening metadata;

creating a representation of the BLOB as one or more spans, where a span refers to a finite sequence of one or more bytes in the cluster, where a span identifies a sequence of contiguous subblocks in a cluster with a length that identifies one or more of, a number of contiguous subblocks and a number of bytes, and where a span comprises one or more of, a skip value x that indicates that the extent of the span is to be reduced by x bytes, and an extension value y that indicates that the extent of the span is to be increased by y bytes;

maintaining an index that maps the hash of at least one subblock to the cluster containing the subblock, where only the T'th subblock in a BLOB is indexed, T being a positive integer, and where the index comprises one or more hash tables; and

upon determining that a fragmentation threshold has been surpassed, duplicating a contiguous run of one or more subblocks in the store of subblocks.

2. The method of claim 1 , where the one or more spans are stored as an ordered list.

3. The method of claim 1 , where the one or more spans are stored as a tree of spans.

4. The method of claim 1 , where an upper bound is placed on one or more of, the number of subblocks in cluster, and the number of bytes in a cluster.

5. The method of claim 1 , where data structures to store the BLOB are created, but the BLOB is not stored.

6. The method of claim 1 , comprising reconstructing the BLOB from the subblocks referenced by the one or more spans.

7. The method of claim 1 , where a cluster comprises a directory of subblocks and where the directory comprises at least one of: the length of subblock, hash of subblock, position of subblock in the cluster, and an identifier for subblock.

8. The method of claim 1 , where the cluster directory is stored in the cluster.

9. The method of claim 1 , where the cluster directory is stored separately from the cluster.

10. The method of claim 1 , where the cluster directory has a fixed length.

11. The method of claim 10 , where the cluster records boundaries between contiguous runs of subblocks in the cluster.

12. The method of claim 1 , comprising compressing at least one cluster.

13. The method of claim 1 , comprising compressing at least one subblock.

14. The method of claim 1 , comprising compressing two or more adjacent subblocks.

15. The method of claim 1 , comprising maintaining an index that maps at least one subblock to the cluster containing the subblock.

16. The method of claim 1 , where the index stores the position of subblock in the cluster containing the subblock.

17. The method of claim 1 , the index comprising a digital search tree whose keys are subblock hashes.

18. The method of claim 1 , the index comprising a Btree.

19. The method of claim 1 the index comprising one or more hash tables.

20. The method of claim 1 , where a hash table entry for a subblock comprises portion of the hash of the subblock.

21. The method of claim 1 , the hash table comprising buckets.

22. The method of claim 1 , comprising checking for duplicate subblocks by checking the index before adding a subblock to a cluster.

23. The method of claim 1 , comprising checking for duplicate subblocks by comparing the hashes of subblocks to be stored with the hashes of at least one of the subblocks in a cluster where an index indicates a subblock is stored.

24. The method of claim 1 , where a span identifies a subblock using a portion of the hash of the subblock.

25. The method of claim 1 , comprising duplicating a contiguous run of less than T present subblocks in the store of subblocks, where T is a predefined threshold of subblocks.

26. The method of claim 25 , T being two.

27. The method of claim 1 , comprising duplicating a contiguous run of one or more subblocks in the store of subblocks.

28. The method of claim 1 , comprising augmenting at least one span X with an alternative span that refers to a copy of the data referred to by span X.

29. The method of claim 1 , comprising: upon determining that the location of a subblock X as a function of the index, searching forwards from subblock X to find the longest matching run of subblocks with the subblocks being stored.

Assignments (14)
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 →
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 →
PATENT ASSIGNMENT Recorded Mar 28, 2012
From: ROCKSOFT LIMITED
To: QUANTUM CORPORATION
Reel/Frame 027950/0746 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2006
From: WILLIAMS, ROSS NEIL
To: ROCKSOFT LIMITED
Reel/Frame 018228/0180 →