IP Library Granted Patent US 8,874,520
Granted Patent B2
US 8,874,520 · App. 13/026,188 · Granted Oct 28, 2014

Processes and methods for client-side fingerprint caching to improve deduplication system backup performance

Inventors: Xianbo Zhang (Madison, WI); Thomas Hartnett (Saint Paul, MN); Weibao Wu (Vadnais Heights, MN)
Assignee: Symantec Corporation
G06F11/1453
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,874,520
App. No.
13/026,188
Filed
Feb 11, 2011
Granted
Oct 28, 2014
Kind
B2
Examiner
AHN, SANGWOO
Art Unit
2166
USPC
707/654
Abstract

A system and method for caching fingerprints in a client cache is provided. A data object that comprises a set of data segments and describes a backup process is identified. Thereafter, a request referencing the data object is made to a deduplication server to request that a task identifier be added to the data object. If the deduplication server is able to successfully add the task identifier to the data object, then an active identifier is added to each data segment from the set of data segments in a cache that is within a client system.

Claims (104)

1. A method comprising:

identifying a data object, wherein

the data object comprises a set of data segments, and

the data object describes a backup process;

sending a request to a deduplication server, wherein

the request is a request for the deduplication server to add a task identifier to a copy of the data object stored at the deduplication server,

the request comprises a reference to the data object, and

addition of the task identifier to the copy of the data object protects the copy of the data object and a copy of the set of data segments stored at the deduplication server from being deleted from the deduplication server during the backup process; and

in response to a determination that the deduplication server has successfully added the task identifier to the copy of the data object stored at the deduplication server, adding an active identifier to each data segment in the set of data segments stored in a cache, wherein

the cache is at a client system, and

addition of the active identifier to the each data segment indicates that a corresponding copy of the each data segment stored at the deduplication sever will be maintained at the deduplication server during the backup process.

2. The method of claim 1 , further comprising:

receiving the data object, wherein

the data object is received from the deduplication server, in response to a query from the client system,

the query comprises a query for a data object that includes a fingerprint match for the set of data segments, and

the query is performed prior to performing an initial full backup of the client system.

3. The method of claim 1 , further comprising:

adding an active identifier to a reference list corresponding to the each data segment in the set of data segments.

4. The method of claim 1 , further comprising:

performing the backup process for the client system, after the adding the active identifier to the each data segment.

5. The method of claim 4 , further comprising:

determining whether another data segment referenced by the backup process needs to be sent to the deduplication server, wherein the determining comprises:

determining whether a fingerprint for the another data segment is in the cache, and

determining whether the cache has an active identifier for the another data segment.

6. The method of claim 4 , further comprising:

creating a record of the backup process on the cache, upon successful completion of the backup process, wherein

the record comprises at least one of:

backup policy information,

a list of the set of data segments referenced by the backup process,

a fingerprint of the data object, and

a backup type indicator.

7. The method of claim 4 , further comprising:

upon successful completion of the backup process:

receiving the data object describing the backup process from the client system,

adding a data object fingerprint to a reference list corresponding to the each data segment in the data object, and

removing the task identifier from the copy of the data object.

8. A non-transitory computer readable storage medium comprising instructions executable to:

identify a data object, wherein

the data object comprises a set of data segments, and

the data object describes a backup process;

send a request to a deduplication server, wherein

the request is a request for the deduplication server to add a task identifier to a copy of the data object stored at the deduplication server,

the request comprises a reference to the data object, and

addition of the task identifier to the copy of the data object protects the copy of the data object and a copy of the set of data segments stored at the deduplication server from being deleted from the deduplication server during the backup process; and

add an active identifier to each data segment in the set of data segments stored in a cache, in response to a determination that the deduplication server has successfully added the task identifier to the copy of the data object stored at the deduplication server, wherein

the cache is at a client system, and

addition of the active identifier to the each data segment indicates that a corresponding copy of the each data segment stored at the deduplication sever will be maintained at the deduplication server during the backup process.

9. The non-transitory computer readable storage medium of claim 8 , wherein the program instructions are further executable to:

receive the data object, wherein

the data object is received from the deduplication server, in response to a query from the client system,

the query comprises a query for a data object that includes a fingerprint match for the set of data segments, and

the query is performed prior to performing an initial full backup of the client system.

10. The non-transitory computer readable storage medium of claim 8 , wherein the program instructions are further executable to:

add an active identifier to a reference list corresponding to the each data segment in the set of data segments.

11. The non-transitory computer readable storage medium of claim 8 , wherein the program instructions are further executable to:

perform the backup process for the client system, after the active identifier is added to the each data segment.

12. The non-transitory computer readable storage medium of claim 11 , wherein the program instructions are further executable to:

determine whether another data segment referenced by the backup process needs to be sent to the deduplication server by:

determining whether a fingerprint for the another data segment is in the cache, and

determining whether the cache has an active identifier for the another data segment.

13. The non-transitory computer readable storage medium of claim 11 , wherein the program instructions are further executable to:

create a record of the backup process on the cache, upon successful completion of the backup process, wherein

the record comprises at least one of:

backup policy information,

a list of the set of data segments referenced by the backup process,

a fingerprint of the data object, and

a backup type indicator.

14. The non-transitory computer readable storage medium of claim 11 , wherein the program instructions are further executable to:

receive the data object describing the backup process from the client system,

add a data object fingerprint to a reference list corresponding to the each data segment in the data object, and

remove the task identifier from the copy of the data object.

15. A system comprising:

one or more processors; and

memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

identify a data object, wherein

the data object comprises a set of data segments, and

the data object describes a backup process,

send a request to a deduplication server, wherein

the request is a request for the deduplication server to add a task identifier to a copy of the data object stored at the deduplication server,

the request comprises a reference to the data object, and

addition of the task identifier to the copy of the data object protects the copy of the data object and a copy of the set of data segments stored at the deduplication server from being deleted from the deduplication server during the backup process, and

add an active identifier to each data segment in the set of data segments stored in a cache, in response to a determination that the deduplication server has successfully added the task identifier to the copy of the data object stored at the deduplication server, wherein

the cache is at a client system, and

addition of the active identifier to the each data segment indicates that a corresponding copy of the each data segment stored at the deduplication sever will be maintained at the deduplication server during the backup process.

16. The system of claim 15 , wherein the program instructions are further executable to:

receive the data object, wherein

the data object is received from the deduplication server, in response to a query from the client system,

the query comprises a query for a data object that includes a fingerprint match for the set of data segments, and

the query is performed prior to performing an initial full backup of the client system.

17. The system of claim 15 , wherein the program instructions are further executable to:

add an active identifier to a reference list corresponding to the each data segment in the set of data segments.

18. The system of claim 15 , wherein the program instructions are further executable to:

perform the backup process for the client system, after the active identifier is added to the each data segment.

19. The system of claim 18 , wherein the program instructions are further executable to:

determine whether another data segment referenced by the backup process needs to be sent to the deduplication server by:

determining whether a fingerprint for the another data segment is in the cache, and

determining whether the cache has an active identifier for the another data segment.

20. The system of claim 18 , wherein the program instructions are further executable to:

create a record of the backup process on the cache, upon successful completion of the backup process, wherein

the record comprises at least one of:

backup policy information,

a list of the set of data segments referenced by the backup process,

a fingerprint of the data object, and

a backup type indicator.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 Feb 15, 2011
From: ZHANG, XIANBO; HARTNETT, THOMAS; WU, WEIBAO
To: SYMANTEC CORPORATION
Reel/Frame 025809/0492 →
Continuity (1)
Related Publication 20120209814A1 · Aug 16, 2012