IP Library Granted Patent US 7,454,592
Granted Patent B1
US 7,454,592 · App. 11/355,684 · Granted Nov 18, 2008

Block-level and hash-based single-instance storage

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,454,592
App. No.
11/355,684
Granted
Nov 18, 2008
Kind
B1
Abstract

A method for reading data in a block-level single-instance storage system may involve receiving a first address of a data block, retrieving a signature corresponding to the first address, and reading data from a second address corresponding to the signature. A storage system may include a storage manager and first and second lookup tables. The storage manager may interface with an application (such as a database system or a file system) that uses a first set of identifiers for data blocks. The storage manager may use a second set of identifiers for the data blocks, and translates between the first and second identifiers using the lookup tables. The first lookup table indexes data block signatures according to the first set of identifiers. The second lookup table indexes the second set of identifiers according to the data block signatures. The second lookup table may be pruned to provide single instance storage.

Claims (56)

1. A method comprising:

receiving a first address of a data block;

retrieving a signature corresponding to the first address, wherein the signature is derived from at least a portion of contents of the data block;

retrieving a second address corresponding to the signature.

2. The method of claim 1 , where the first address is received from an application by a storage manager, and the retrieving the signature is performed by the storage manager.

3. The method of claim 2 , where the storage manager is a volume manager and the application is a file system.

4. The method of claim 1 , where the first address is a logical block address and the second address is a physical block address.

5. The method of claim 1 , where the signature is a hash of the data block.

6. The method of claim 1 , further comprising:

retrieving the data block from the second address.

7. The method of claim 1 , further comprising:

writing data to the data block at the second address.

8. The method of claim 7 , where the writing is performed as necessary for single-instance storage.

9. The method of claim 1 , further comprising:

deleting the signature, if the data block becomes an unused data block.

10. The method of claim 1 , further comprising:

deleting the data block, if the data block becomes an unused data block.

11. A method comprising:

receiving a first address;

identifying data to be written at the first address;

searching a first lookup table for the first address;

generating a signature based at least in part on the data;

searching a second lookup table for the signature; and

updating the first lookup table with the first address and the signature.

12. The method of claim 11 , further comprising:

updating a reference count for the signature if the searching the second lookup table indicates that the signature is in the second lookup table; and

updating a reference count for a previous signature if the searching the first lookup table indicates that the first address is in the first lookup table.

13. The method of claim 11 , further comprising:

writing the data if the searching the second lookup table indicates that the signature is not in the second lookup table.

14. The method of claim 13 , where the writing the data comprises:

writing the data at a second address; and

updating the second lookup table with the second address.

15. The method of claim 14 , where the first address is a logical block address and the second address is a physical block address.

16. The method of claim 11 , where the first lookup table indexes signatures by first addresses, and where the second lookup table indexes second addresses by signatures.

17. A system comprising:

a storage manager configured to interface with an application, where the application is configured to identify data blocks according to a first set of identifiers for the data blocks, and where the storage manager is configured to access the data blocks on a storage medium according to a second set of identifiers for the data blocks;

a first lookup table that indexes data block signatures according to identifiers from the first set of identifiers, wherein each of the data block signatures is derived from at least a portion of contents of a corresponding data block;

a second lookup table that indexes identifiers from the second set of identifiers according to the data block signatures.

18. The system of claim 17 , where the first set of identifiers for the data blocks comprises logical block addresses, and where the second set of identifiers for the data blocks comprises physical block addresses.

19. The system of claim 17 , where the data block signatures are hashes of data in corresponding data blocks.

20. The system of claim 17 , where the storage manager implements single-instance storage.

21. A computer readable storage medium having encoded thereon program instructions executable on one or more processors, the computer readable storage medium being at least one of an electronic storage medium, a magnetic storage medium, or an optical storage medium, where the program instructions are executable to implement each of:

receiving a first address of a data block;

retrieving a signature corresponding to the first address, wherein the signature is derived from at least a portion of contents of the data block;

retrieving a second address corresponding to the signature.

22. The computer readable storage medium of claim 21 , where the first address is a logical block address and the second address is a physical block address, and where the signature is a hash of the data block.

23. A computer readable storage medium having encoded thereon program instructions executable on one or more processors, the computer readable storage medium being at least one of an electronic storage medium, a magnetic storage medium, or an optical storage medium, where the program instructions are executable to implement each of:

receiving a first address;

identifying data to be written at the first address;

searching a first lookup table for the first address;

generating a signature based at least in part on the data;

searching a second lookup table for the signature;

updating the first lookup table with the first address and the signature.

24. The computer readable storage medium of claim 23 , where the program instructions are further executable to implement:

writing the data at a second address if the searching the second lookup table indicates that the signature is not in the second lookup table.

25. The computer readable storage medium of claim 24 , where the first address is a logical block address, where the second address is a physical block address, and where the signature is a hash of the data block.

Assignments (18)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2012
From: SYMANTEC OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 028083/0409 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2006
From: SHAH, AALOP S.; VARADARAJAN, GANESH; BORATE, MILIND V.; VAJGEL, PETER
To: VERITAS OPERATING CORPORATION
Reel/Frame 017581/0365 →