IP Library Granted Patent US 10,565,062
Granted Patent B1
US 10,565,062 · App. 15/719,490 · Granted Feb 18, 2020

Systems and methods for managing replication of data to a remote storage device

Inventors: Subash Rajaa (Pune, IN); Sunil Hasbe (Shirur Anantpal, IN); Anish Vaidya (Pleasanton, CA); Om Prakash Agarwal (Fremont, CA)
Assignee: Veritas Technologies LLC
G06F11/1451G06F11/1464G06F2201/805G06F2201/82
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,565,062
App. No.
15/719,490
Granted
Feb 18, 2020
Kind
B1
Abstract

The disclosed computer-implemented method for managing replication of data to a remote storage device may include (1) maintaining a first bitmap and a second bitmap storing data acknowledging persistence of target data, respectively, at source and target gateways, where the target gateway serves the remote storage device, (2) sending replication data from a computing device to the source gateway, (3) setting a bit in the first bitmap, where the set bit corresponds to the replication data sent to the source gateway, (4) receiving a first acknowledgement indicating the source gateway received the replication data, (5) copying, in response to the first acknowledgement, the bit to the second bitmap, (6) clearing, in response to the first acknowledgement, the bit in the first bitmap, and (7) receiving a second acknowledgement indicating the target gateway received the replication data. Various other methods, systems, and computer-readable media are also disclosed.

Claims (105)

1. A computer-implemented method for managing replication of data to a remote storage device, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

maintaining, on the computing device:

a first bitmap storing data acknowledging persistence of source data at a source gateway; and

a second bitmap storing data acknowledging persistence of target data at a target gateway, wherein the target gateway serves the remote storage device;

sending replication data from the computing device to the source gateway;

setting a bit in the first bitmap, wherein the set bit corresponds to the replication data sent to the source gateway;

receiving a first acknowledgement, wherein the first acknowledgement indicates the source gateway received the replication data;

copying, in response to the first acknowledgement, the bit to the second bitmap;

clearing, in response to the first acknowledgement, the bit in the first bitmap;

receiving a second acknowledgement, wherein the second acknowledgement indicates the target gateway received the replication data; and

clearing, in response to the second acknowledgement, the bit in the second bitmap.

2. The method of claim 1 , further comprising:

maintaining, on the computing device:

a third bitmap storing data acknowledging persistence of source data at the source gateway; and

a fourth bitmap storing data acknowledging persistence of target data at the target gateway.

3. The method of claim 2 , further comprising:

switching from using the first bitmap to using the third bitmap when a threshold value of persistence of source data in the first bitmap is reached;

sending a marker to the source gateway when bits are previously set in the first bitmap at the time of switching;

receiving, from the source gateway, an acknowledgement that all data represented in the first bitmap is received; and

transferring all bits in the first bitmap to the second bitmap or the fourth bitmap.

4. The method of claim 2 , further comprising:

switching from using the third bitmap to using the first bitmap when a threshold value of persistence of source data in the third bitmap is reached;

sending a marker to the source gateway when bits are previously set in the third bitmap at the time of switching;

receiving, from the source gateway, an acknowledgement that all data represented in the third bitmap is received; and

transferring all bits in the third bitmap to the second bitmap or the fourth bitmap.

5. The method of claim 2 , further comprising:

switching from using the second bitmap to using the fourth bitmap when a threshold value of persistence of target data in the second bitmap is reached;

sending a marker to the target gateway when bits are previously set in the second bitmap at the time of switching;

receiving, from the target gateway, an acknowledgement that all data represented in the second bitmap is received; and

clearing the second bitmap.

6. The method of claim 2 , further comprising:

switching from using the fourth bitmap to using the second bitmap when a threshold value of persistence of target data in the fourth bitmap is reached;

sending a marker to the target gateway when bits are previously set in the fourth bitmap at the time of switching;

receiving, from the target gateway, an acknowledgement that all data represented in the fourth bitmap is received; and

clearing the fourth bitmap.

7. The method of claim 2 , further comprising

receiving an indication that a transient failure of a device in a replication path is repaired; and

resending to the source gateway, in response to the indication and when the bit is set in the first bitmap or the third bitmap, replication data corresponding to the bit.

8. The method of claim 2 , further comprising:

receiving an indication that a fault of a first device in a replication path is repaired by replacement with a second device having no previous state or a new gateway provisioned similarly to the first device; and

resending to the target gateway, in response to the indication and when the bit is set in the second bitmap or the fourth bitmap, replication data corresponding to the bit.

9. The method of claim 1 , further comprising:

receiving an indication that the source gateway or the target gateway is being provisioned; and

performing at least one security action in response to receiving the indication.

10. The method of claim 1 , wherein the computing device and the source gateway are separate devices.

11. A system for managing replication of data to a remote storage device, the system comprising:

a memory device;

a maintaining module, stored in the memory device, that maintains, on the computing device:

a first bitmap storing data acknowledging persistence of source data at a source gateway; and

a second bitmap storing data acknowledging persistence of target data at a target gateway, wherein the target gateway serves the remote storage device;

a sending module, stored in the memory device, that sends replication data from the computing device to the source gateway;

a setting module, stored in the memory device, that sets a bit in the first bitmap, wherein the set bit corresponds to the replication data sent to the source gateway;

a first receiving module, stored in the memory device, that receives a first acknowledgement, wherein the first acknowledgement indicates the source gateway received the replication data;

a copying module, stored in the memory device, that copies, in response to the first acknowledgement, the bit to the second bitmap;

a first clearing module, stored in the memory device, that clears, in response to the first acknowledgement, the bit in the first bitmap;

a second receiving module, stored in the memory device, that receives a second acknowledgement, wherein the second acknowledgement indicates the target gateway received the replication data;

a second clearing module, stored in the memory device, that clears, in response to the second acknowledgement, the bit in the second bitmap; and

at least one physical processor that executes the maintaining module, the sending module, the setting module, the first receiving module, the copying module, the first clearing module, the second receiving module, and the second clearing module.

12. The system of claim 11 , further comprising:

a second maintaining module, stored in the memory device, that maintains, on the computing device:

a third bitmap storing data acknowledging persistence of source data at the source gateway; and

a fourth bitmap storing data acknowledging persistence of target data at the target gateway.

13. The system of claim 12 , further comprising:

a switching module, stored in the memory device, that switches from using the first bitmap to using the third bitmap when a threshold value of persistence of source data in the first bitmap is reached;

a second sending module, stored in the memory device, that sends a marker to the source gateway when bits are previously set in the first bitmap at the time of switching;

a third receiving module, stored in the memory device, that receives, from the source gateway, an acknowledgement that all data represented in the first bitmap is received; and

a transferring module, stored in the memory device, that transfers all bits in the first bitmap to the second bitmap or the fourth bitmap.

14. The system of claim 12 , further comprising:

a switching module, stored in the memory device, that switches from using the third bitmap to using the first bitmap when a threshold value of persistence of source data in the third bitmap is reached;

a second sending module, stored in the memory device, that sends a marker to the source gateway when bits are previously set in the third bitmap at the time of switching;

a third receiving module, stored in the memory device, that receives, from the source gateway, an acknowledgement that all data represented in the third bitmap is received; and

a transferring module, stored in the memory device, that transfers all bits in the third bitmap to the second bitmap or the fourth bitmap.

15. The system of claim 12 , further comprising:

a switching module, stored in the memory device, that switches from using the second bitmap to using the fourth bitmap when a threshold value of persistence of target data in the second bitmap is reached;

a second sending module, stored in the memory device, that sends a marker to the target gateway when bits are previously set in the second bitmap at the time of switching;

a third receiving module, stored in the memory device, that receives, from the target gateway, an acknowledgement that all data represented in the second bitmap is received; and

a clearing module, stored in the memory device, that clears the second bitmap.

16. The system of claim 12 , further comprising:

a switching module, stored in the memory device, that switches from using the fourth bitmap to using the second bitmap when a threshold value of persistence of target data in the fourth bitmap is reached;

a second sending module, stored in the memory device, that sends a marker to the target gateway when bits are previously set in the fourth bitmap at the time of switching;

a third receiving module, stored in the memory device, that receives, from the target gateway, an acknowledgement that all data represented in the fourth bitmap is received; and

a clearing module, stored in the memory device, that clears the fourth bitmap.

17. The system of claim 12 , further comprising:

a third receiving module, stored in the memory device, that receives an indication that a transient failure of a device in a replication path is repaired; and

a resending module, stored in the memory device, that resends to the source gateway, in response to the indication and when the bit is set in the first bitmap or the third bitmap, replication data corresponding to the bit.

18. The system of claim 12 , further comprising:

a third receiving module, stored in the memory device, that receives an indication that a fault of a first device in a replication path is repaired by replacement with a second device having no previous state or a new gateway provisioned similarly to the first device; and

a resending module, stored in the memory device, that resends to the target gateway, in response to the indication and when the bit is set in the second bitmap or the fourth bitmap, replication data corresponding to the bit.

19. The system of claim 11 , further comprising:

a third receiving module, stored in the memory device, that receives an indication that the source gateway or the target gateway is being provisioned; and

a performing module, stored in the memory device, that performs at least one security action in response to receiving the indication.

20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

maintain, on the computing device:

a first bitmap storing data acknowledging persistence of source data at a source gateway; and

a second bitmap storing data acknowledging persistence of target data at a target gateway, wherein the target gateway serves a remote storage device;

send replication data from the computing device to the source gateway;

set a bit in the first bitmap, wherein the set bit corresponds to the replication data sent to the source gateway;

receive a first acknowledgement, wherein the first acknowledgement indicates the source gateway received the replication data;

copy, in response to the first acknowledgement, the bit to the second bitmap;

clear, in response to the first acknowledgement, the bit in the first bitmap;

receive a second acknowledgement, wherein the second acknowledgement indicates the target gateway received the replication data; and

clear, in response to the second acknowledgement, the bit in the second bitmap.

21. The non-transitory computer-readable medium of claim 20 , further comprising one or more computer-executable instructions that, when executed by the at least one processor of the computing device, cause the computing device to maintain, on the computing device:

a third bitmap storing data acknowledging persistence of source data at the source gateway; and

a fourth bitmap storing data acknowledging persistence of target data at the target gateway.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
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 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0938 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 051594/0529 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0412 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 2, 2019
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 051594/0529 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 044682/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2017
From: RAJAA, SUBASH; HASBE, SUNIL; VAIDYA, ANISH; AGARWAL, OM PRAKASH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 043732/0178 →