IP Library Granted Patent US 10,684,920
Granted Patent B2
US 10,684,920 · App. 14/842,693 · Granted Jun 16, 2020

Optimized and consistent replication of file overwrites

Inventors: Naresh Saladi (Santa Clara, CA); Murali Bashyam (Fremont, CA)
Assignee: QUEST SOFTWARE INC.
G06F11/1453G06F11/1448G06F16/1748G06F16/184
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 10,684,920
App. No.
14/842,693
Granted
Jun 16, 2020
Kind
B2
Abstract

In general, certain embodiments of the present disclosure provide techniques or mechanisms for creating efficient and consistent replication of file overwrites. According to various embodiments, a file map with a sequence file number is created for a data file on a source. The file map includes one or more nodes that each include a sequence node number. When an entry in the file map is changed, the sequence file number is incremented, and the corresponding node is updated by, among other things, setting the sequence node number to equal the current sequence file number. All other nodes in the file map that point to the updated node are similarly updated. When replication occurs, only the updated nodes in the file map are replicated and any unreplicated non-updated nodes are maintained.

Claims (43)

1. A method comprising:

creating a file map to track data chunks and at least one pointer to a data file, wherein the file map includes one or more nodes, each node including a sequence node number;

changing an entry associated with a data chunk of the data file in the file map, the entry corresponding to a node in the file map, the data chunk being stored at the node;

incrementing a previous sequence file number for the file map to form a current sequence file number for the file map;

updating the node corresponding to the changed entry, wherein updating the node includes setting the sequence node number of the node to equal the current sequence file number;

updating each node that includes a pointer to the data chunk being stored at the node, wherein updating each node includes setting the sequence node number of that particular node to the current sequence file number;

replicating the updated nodes in the file map and refraining from replicating non-updated nodes, wherein a respective sequence node number of the non-updated nodes are not equal to the current sequence file number, wherein a first non-updated node has a first sequence node number, wherein a second non-updated node has the first sequence node number, wherein the first sequence node number is not equal to the current sequence file number;

connecting new pointers from the replicated updated nodes to the non-updated nodes to which the original versions of the updated nodes had pointers.

2. The method of claim 1 , wherein the file map is represented as a tree data structure.

3. The method of claim 1 , wherein only the updated nodes with a sequence node number greater than a replication sequence number are replicated, wherein the replication sequence number corresponds to the number of successful replications at a target.

4. The method of claim 3 , further comprising updating the replication sequence number only after completion of a successful replication at the target, wherein updating the replication sequence number includes setting the replication sequence number to equal the current sequence file number upon successful replication of the data file at the target.

5. The method of claim 1 , wherein a read only copy of the file map is maintained at the target for read requests during replication, the read only copy corresponding to the version of the file map immediately before replication begins.

6. The method of claim 1 , wherein changing the entry corresponds to changing a number of file map pages in the file map.

7. The method of claim 6 , wherein updates to reference counts utilized in data deduplication are proportional to the number of file map pages that have been changed.

8. A system, comprising:

a processor;

memory, wherein the memory contains instructions to cause the processor to:

create a file map to track data chunks and at least one pointer to a data file, wherein the file map includes one or more nodes, each node including a sequence node number;

change an entry associated with a data chunk of the data file in the file map, the entry corresponding to a node in the file map, the data chunk being stored at the node;

increment a previous sequence file number for the file map to form a current sequence file number for the file map;

update the node corresponding to the changed entry, wherein updating the node includes setting the sequence node number of the node to equal the current sequence file number;

update each node that includes a pointer to the data chunk being stored at the node, wherein updating each node includes setting the sequence node number of that particular node to the current sequence file number;

replicate the updated nodes in the file map and refrain from replicating non-updated nodes, wherein a respective sequence node number of the non-updated nodes are not equal to the current sequence file number, wherein a first non-updated node has a first sequence node number, wherein a second non-updated node has the first sequence node number, wherein the first sequence node number is not equal to the current sequence file number;

connect new pointers from the replicated updated nodes to the non-updated nodes to which the original versions of the updated nodes had pointers.

9. The system of claim 8 , wherein the file map is represented as a tree data structure.

10. The system of claim 8 , wherein only the updated nodes with a sequence node number greater than a replication sequence number are replicated, wherein the replication sequence number corresponds to the number of successful replications at a target.

11. The system of claim 10 , further comprising updating the replication sequence number only after completion of a successful replication at the target, wherein updating the replication sequence number includes setting the replication sequence number to equal the current sequence file number upon successful replication of the data file at the target.

12. The system of claim 8 , wherein a read only copy of the file map is maintained at the target for read requests during replication, the read only copy corresponding to the version of the file map immediately before replication begins.

13. The system of claim 8 , wherein changing the entry corresponds to changing a number of file map pages in the file map.

14. The system of claim 13 , wherein updates to reference counts utilized in data deduplication are proportional to the number of file map pages that have been changed.

15. A non-transitory computer readable medium containing computer code that, when executed by one or more processors, cause a system to perform operations comprising:

creating a file map to track data chunks and at least one pointer to a data file, wherein the file map includes one or more nodes, each node including a sequence node number;

changing an entry associated with a data chunk of the data file in the file map, the entry corresponding to a node in the file map, the data chunk being stored at the node;

incrementing a previous sequence file number for the file map to form a current sequence file number for the file map;

updating the node corresponding to the changed entry, wherein updating the node includes setting the sequence node number of the node to equal the current sequence file number;

updating each node that includes a pointer to the data chunk being stored at the node, wherein updating each node includes setting the sequence node number of that particular node to the current sequence file number;

replicating the updated nodes in the file map and refraining from replicating non-updated nodes, wherein a respective sequence node number of the non-updated nodes are not equal to the current sequence file number, wherein a first non-updated node has a first sequence node number, wherein a second non-updated node has the first sequence node number, wherein the first sequence node number is not equal to the current sequence file number; and

connecting new pointers from the replicated updated nodes to the non-updated nodes to which the original versions of the updated nodes had pointers.

16. The non-transitory computer readable medium of claim 15 , wherein the file map is represented as a tree data structure.

17. The non-transitory computer readable medium of claim 15 , wherein only the updated nodes with a sequence node number greater than a replication sequence number are replicated, wherein the replication sequence number corresponds to the number of successful replications at a target.

18. The non-transitory computer readable medium of claim 17 , further comprising updating the replication sequence number only after completion of a successful replication at the target, wherein updating the replication sequence number includes setting the replication sequence number to equal the current sequence file number upon successful replication of the data file at the target.

19. The non-transitory computer readable medium of claim 15 , wherein changing the entry corresponds to changing a number of file map pages in the file map.

20. The non-transitory computer readable medium of claim 15 , wherein a read only copy of the file map is maintained at the target for read requests during replication, the read only copy corresponding to the version of the file map immediately before replication begins.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
CHANGE OF NAME Recorded Jun 19, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046393/0009 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF REEL 037160 FRAME 0142 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0812 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 037160 FRAME 0239 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0115 →
RELEASE OF REEL 037160 FRAME 0171 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0253 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 037160/0142 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037160/0239 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037160/0171 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2015
From: SALADI, NARESH; BASHYAM, MURALI
To: DELL SOFTWARE, INC.
Reel/Frame 036471/0793 →
Continuity (1)
Related Publication 20170060957A1 · Mar 2, 2017