IP Library Granted Patent US 9,952,933
Granted Patent B1
US 9,952,933 · App. 14/588,008 · Granted Apr 24, 2018

Fingerprint change during data operations

Inventors: Xianbo Zhang (Plymouth, MN); Haigang Wang (Shoreview, MN)
Assignee: Veritas Technologies LLC
G06F11/1448G06F17/30312G06F17/30424
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 9,952,933
App. No.
14/588,008
Filed
Dec 31, 2014
Granted
Apr 24, 2018
Kind
B1
Examiner
HO, BINH VAN
Art Unit
2152
USPC
707/645
Abstract

Various systems, methods, and processes for caching and referencing multiple fingerprints while data operations are ongoing are disclosed. A first fingerprint is generated based on a first fingerprinting process. The first fingerprint is stored in association with a second fingerprint, which is based on a second fingerprinting process. The first fingerprint and the second fingerprint are associated with the same data segment. Data operations such as a backup operation, a restore operation, or a replication operation can be performed while the conversion of the data segment from the second fingerprint to the first fingerprint is ongoing.

Claims (99)

1. A computer implemented method comprising:

generating a first fingerprint, wherein

the first fingerprint is generated from a data segment using a first fingerprinting process; and

storing the first fingerprint in an index, wherein

the first fingerprint is stored in association with a second fingerprint stored in the index,

the second fingerprint was generated from the data segment using a second fingerprinting process,

the first fingerprint and the second fingerprint are associated with the data segment by virtue of being stored in the index with information identifying the data segment,

the index comprises at least one existing fingerprint that was generated from another data segment using the second fingerprinting process, and

the at least one existing fingerprint is not associated with another fingerprint generated using the first fingerprinting process.

2. The computer implemented method of claim 1 further comprising:

recalculating the second fingerprint based on the first fingerprinting process, wherein

the second fingerprint is previously calculated based on the second fingerprinting process, and

the second fingerprint is stored in the index and in a cache; and

upon recalculating the second fingerprint based on the first fingerprinting process,

storing the first fingerprint and the second fingerprint in the index and in the cache.

3. The computer implemented method of claim 2 , wherein

the first fingerprint is stored along with the second fingerprint locally in the index and remotely in the cache.

4. The computer implemented method of claim 1 , further comprising:

retrieving a data object comprising the second fingerprint of a last full backup, wherein

the data object is retrieved from a container file, and

the second fingerprint is stored locally in the container file comprising the index.

5. The computer implemented method of claim 4 , further comprising:

querying the data segment against the last full backup to determine whether a data item associated with the data segment is also associated with the second fingerprint.

6. The computer implemented method of claim 5 , further comprising:

querying the cache to determining whether the data item associated with the data segment is also associated with the second fingerprint, wherein

the second fingerprint is stored in the cache, and

querying the data segment against the last full backup fails to indicate that the data item associated with the data segment is also associated with the second fingerprint.

7. The computer implemented method of claim 6 , wherein

a new backup operation references the second fingerprint stored locally in the index and remotely in the cache.

8. The computer implemented method of claim 7 , further comprising:

clearing the cache after the new backup operation.

9. The computer implemented method of claim 2 , further comprising:

modifying the index based on the recalculating, wherein

the modification stores the first fingerprint associated with the data segment calculated with the first fingerprinting process along with the second fingerprint associated with the same data segment in the index; and

starting a conversion of data segments associated with the second fingerprint to first fingerprints based on the first fingerprinting process, wherein

the conversion is performed by accessing the modified index.

10. The computer implemented method of claim 9 , further comprising:

performing an another backup operation, a restore operation, or a replication operation while the conversion of the data segments is ongoing.

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

generate a first fingerprint, wherein

the first fingerprint is generated from a data segment using a first fingerprinting process; and

store the first fingerprint in an index, wherein

the first fingerprint is stored in association with a second fingerprint stored in the index,

the second fingerprint was generated from the data segment using a second fingerprinting process,

the first fingerprint and the second fingerprint are associated with the data segment by virtue of being stored in the index with information identifying the data segment,

the index comprises at least one existing fingerprint that was generated from another data segment using the second fingerprinting process, and

the at least one existing fingerprint is not associated with another fingerprint generated using the first fingerprinting process.

12. The non-transitory computer readable storage medium of claim 11 , further comprising:

recalculating the second fingerprint based on the first fingerprinting process, wherein

the second fingerprint is previously calculated based on the second fingerprinting process, and

the second fingerprint is stored in the index and in a cache; and

upon recalculating the second fingerprint based on the first fingerprinting process, storing the first fingerprint and the second fingerprint in the index and in the cache, wherein

the first fingerprint is stored along with the second fingerprint locally in the index and remotely in the cache.

13. The non-transitory computer readable storage medium of claim 11 , further comprising:

retrieving a data object comprising the second fingerprint of a last full backup, wherein the data object is retrieved from a container file, and

the second fingerprint is stored locally in the container file comprising the index.

14. The non-transitory computer readable storage medium of claim 13 , further comprising:

querying the data segment against the last full backup to determine whether a data item associated with the data segment is also associated with the second fingerprint; and

querying the cache to determining whether the data item associated with the data segment is also associated with the second fingerprint, wherein

the second fingerprint is stored in the cache, and

querying the data segment against the last full backup fails to indicate that the data item associated with the data segment is also associated with the second fingerprint.

15. The non-transitory computer readable storage medium of claim 12 , further comprising:

modifying the index based on the recalculating, wherein

the modification stores the first fingerprint associated with the data segment calculated with the first fingerprinting process along with the second fingerprint associated with the same data segment in the index;

starting a conversion of data segments associated with the second fingerprint to first fingerprints based on the first fingerprinting process, wherein

the conversion is performed by accessing the modified index; and

performing an another backup operation, a restore operation, or a replication operation while the conversion of the data segments is ongoing.

16. A system comprising:

one or more processors; and

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

generate a first fingerprint, wherein

the first fingerprint is generated from a data segment using a first fingerprinting process; and

store the first fingerprint in an index, wherein

the first fingerprint is stored in association with a second fingerprint stored in the index,

the second fingerprint was generated from the data segment using a second fingerprinting process,

the first fingerprint and the second fingerprint are associated with the data segment by virtue of being stored in the index with information identifying the data segment,

the index comprises at least one existing fingerprint that was generated from another data segment using the second fingerprinting process, and

the at least one existing fingerprint is not associated with another fingerprint generated using the first fingerprinting process.

17. The system of claim 16 , further comprising:

recalculating the second fingerprint based on the first fingerprinting process, wherein

the second fingerprint is previously calculated based on the second fingerprinting process, and

the second fingerprint is stored in the index and in a cache; and

upon recalculating the second fingerprint based on the first fingerprinting process, storing the first fingerprint and the second fingerprint in the index and in the cache, wherein

the first fingerprint is stored along with the second fingerprint locally in the index and remotely in the cache.

18. The system of claim 16 , further comprising:

retrieving a data object comprising the second fingerprint of a last full backup, wherein

the data object is retrieved from a container file, and

the second fingerprint is stored locally in the container file comprising the index.

19. The system of claim 18 , further comprising:

querying the data segment against the last full backup to determine whether a data item associated with the data segment is also associated with the second fingerprint; and

querying the cache to determining whether the data item associated with the data segment is also associated with the second fingerprint, wherein

the second fingerprint is stored in the cache, and

querying the data segment against the last full backup fails to indicate that the data item associated with the data segment is also associated with the second fingerprint.

20. The system of claim 17 , further comprising:

modifying the index based on the recalculating, wherein

the modification stores the first fingerprint associated with the data segment calculated with the first fingerprinting process along with the second fingerprint associated with the same data segment in the index;

starting a conversion of data segments associated with the second fingerprint to first fingerprints based on the first fingerprinting process, wherein

the conversion is performed by accessing the modified index; and

performing an another backup operation, a restore operation, or a replication operation while the conversion of the data segments is ongoing.

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 Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
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 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2015
From: ZHANG, XIANBO; WANG, HAIGANG
To: SYMANTEC CORPORATION
Reel/Frame 034610/0732 →