IP Library Granted Patent US 11,061,603
Granted Patent B1
US 11,061,603 · App. 16/695,325 · Granted Jul 13, 2021

Systems and methods for switching replication modes in a volume replication system

Inventors: Pritam Bankar (Pune, IN); Sumit Dighe (Pune, IN); Shailesh Marathe (Pune, IN)
Assignee: Veritas Technologies LLC
G06F3/065G06F3/0614G06F3/0659G06F3/0673G06F2211/104
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 11,061,603
App. No.
16/695,325
Granted
Jul 13, 2021
Kind
B1
Abstract

The disclosed computer-implemented method for switching replication modes in a volume replication system may include (i) in response to deciding to switch from a synchronous replication mode of a volume replication system to an asynchronous replication mode, changing, by a computing device, to the asynchronous replication mode, (ii) associating a new write request to write data to storage, (iii) determining, based on metadata of the existing write request, that the existing write request was issued in the synchronous replication mode, (iv) in response to determining that the existing write request was issued in the synchronous replication mode, processing the existing write request via the synchronous replication, and (v) processing the new write request via the asynchronous replication based on the metadata of the new write request. Various other methods, systems, and computer-readable media are also disclosed.

Claims (112)

1. A computer-implemented method for switching replication modes in a volume replication system, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

in response to deciding to switch from a synchronous replication mode of a volume replication system to an asynchronous replication mode, changing, by a computing device, to the asynchronous replication mode;

associating a new write request to write data to storage with metadata indicating that the new write request was issued while the volume replication system was in the asynchronous replication mode;

determining, based on metadata of an existing write request, that the existing write request was issued while the volume replication system was in the synchronous replication mode;

in response to determining that the existing write request was issued in the synchronous replication mode, processing the existing write request via synchronous replication; and

processing the new write request via asynchronous replication based on the metadata of the new write request.

2. The computer-implemented method of claim 1 , wherein processing the existing write request via the synchronous replication comprises:

receiving the existing write request from an application of the computing device;

logging the existing write request to a storage replicator log of the computing device;

processing the existing write request by writing data to a data volume of the computing device;

transmitting the existing write request to a secondary storage device;

logging the existing write request to a secondary storage replicator log of the secondary storage device;

processing the existing write request by writing data to a secondary data volume of the secondary storage device; and

in response to processing the existing write request at the secondary storage device, notifying the application that the existing write request is complete.

3. The computer-implemented method of claim 1 , wherein processing the new write request via the asynchronous replication comprises:

receiving the new write request from an application of the computing device;

logging the new write request to a storage replicator log of the computing device;

processing the new write request by writing data to a data volume of the computing device;

in response to processing the new write request at the computing device, notifying the application that the new write request is complete;

transmitting the new write request to a secondary storage device at a later point in time;

logging the new write request to a secondary storage replicator log of the secondary storage device; and

processing the new write request to write data to a secondary data volume of the secondary storage device.

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

in response to deciding to switch from the asynchronous replication mode to the synchronous replication mode, associating a different new write request with metadata indicating that the different new write request was issued while in the synchronous replication mode and associate the different new write request with a new generation number;

processing a different existing write request via the asynchronous replication based on metadata indicating that the different existing write request was issued while in the asynchronous replication mode and an old generation number of the different existing write request indicating the different existing write request was generated while in the asynchronous replication mode;

processing the different new write request via the synchronous replication based on the metadata of the different new write request and the new generation number of the different new write request; and

in response to determining that each existing write request has been processed, changing to the synchronous replication mode.

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

in response to deciding to switch from the asynchronous replication mode to the synchronous replication mode, generating the new generation number by incrementing the old generation number to indicate a switch in replication modes;

generating a counter indicative of a total number of different existing write requests generated while in the asynchronous replication mode;

decrementing the counter for each different existing write request that has been processed; and

in response to the counter reaching a predetermined value indicating that each of the different existing write requests has been processed, changing to the synchronous replication mode.

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

deciding to switch from the synchronous replication mode of the volume replication system to the asynchronous replication mode based on a threshold of a computing environment of the computing device by:

determining that the threshold has been exceeded; and

in response to determining that the threshold has been exceeded, deciding to change to the asynchronous replication mode.

7. The computer-implemented method of claim 6 , wherein the threshold is based on at least one of a network latency, an application load processing time, an application throughput limit, an input/output operations per second limit, an application workload pattern, or a window of time.

8. A system for switching replication modes in a volume replication system, the system comprising:

a computing device comprising at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the at least one physical processor, cause the computing device to:

in response to a deciding to switch from a synchronous replication mode of a volume replication system to an asynchronous replication mode, change to the asynchronous replication mode;

associate a new write request to write data to storage with metadata indicating that the new write request was issued while the volume replication system was in the asynchronous replication mode;

determine, based on metadata of an existing write request, that the existing write request was issued while the volume replication system was in the synchronous replication mode;

in response to determining that the existing write request was issued in the synchronous replication mode, process the existing write request via the synchronous replication; and

process the new write request via the asynchronous replication based on the metadata of the new write request.

9. The system of claim 8 , wherein, to process the existing write request via the synchronous replication, the computer-executable instructions further cause the computing device to:

receive the existing write request from an application of the computing device;

log the existing write request to a storage replicator log of the computing device;

process the existing write request by writing data to a data volume of the computing device;

transmit the existing write request to a secondary storage device;

log the existing write request to a secondary storage replicator log of the secondary storage device;

process the existing write request by writing data to a secondary data volume of the secondary storage device; and

in response to processing the existing write request at the secondary storage device, notify the application that the existing write request is complete.

10. The system of claim 8 , wherein, to process the new write request via the asynchronous replication, the computer-executable instructions further cause the computing device to:

receive the new write request from an application of the computing device;

log the new write request to a storage replicator log of the computing device;

process the new write request by writing data to a data volume of the computing device;

in response to processing the new write request at the computing device, notify the application that the new write request is complete;

transmit the new write request to a secondary storage device at a later point in time;

log the new write request to a secondary storage replicator log of the secondary storage device; and

process the new write request to write data to a secondary data volume of the secondary storage device.

11. The system of claim 8 , wherein the computer-executable instructions further cause the computing device to:

in response to deciding to switch from the asynchronous replication mode to the synchronous replication mode, associate a different new write request with metadata indicating that the different new write request was issued while in the synchronous replication mode and associate the different new write request with a new generation number;

process a different existing write request via the asynchronous replication based on metadata indicating that the different existing write request was issued while in the asynchronous replication mode and an old generation number of the different existing write request indicating the different existing write request was generated while in the asynchronous replication mode;

process the different new write request via the synchronous replication based on the metadata of the different new write request and the new generation number of the different new write request; and

in response to determining that each existing write request has been processed, changing to the synchronous replication mode.

12. The system of claim 11 , wherein the computer-executable instructions further cause the computing device to:

in response to deciding to switch from the asynchronous replication mode to the synchronous replication mode, generate the new generation number by incrementing the old generation number to indicate a switch in replication modes;

generate a counter indicative of a total number of different existing write requests generated while in the asynchronous replication mode;

decrement the counter for each different existing write request that has been processed; and

in response to the counter reaching a predetermined value indicating that each of the different existing write requests has been processed, change to the synchronous replication mode.

13. The system of claim 8 , wherein the computer-executable instructions further cause the computing device to:

deciding to switch from the synchronous replication mode of the volume replication system to the asynchronous replication mode based on a threshold of a computing environment of the computing device by:

determining that the threshold has been exceeded; and

in response to determining that the threshold has been exceeded, deciding to change to the asynchronous replication mode.

14. The system of claim 13 , wherein the threshold is based on at least one of a network latency, an application load processing time, an application throughput limit, an input/output per second limit, an application workload pattern, or a window of time.

15. 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:

in response to a deciding to switch from a synchronous replication mode of a volume replication system to an asynchronous replication mode, change to the asynchronous replication mode;

associate a new write request to write data to storage with metadata indicating that the new write request was issued while the volume replication system was in the asynchronous replication mode;

determine, based on metadata of an existing write request, that the existing write request was issued while the volume replication system was in the synchronous replication mode;

in response to determining that the existing write request was issued in the synchronous replication mode, process the existing write request via the synchronous replication; and

process the new write request via the asynchronous replication based on the metadata of the new write request.

16. The non-transitory computer-readable medium of claim 15 , wherein, to process the existing write request via the synchronous replication, the computer-executable instructions further cause the computing device to:

receive the existing write request from an application of the computing device;

log the existing write request to a storage replicator log of the computing device;

process the existing write request by writing data to a data volume of the computing device;

transmit the existing write request to a secondary storage device;

log the existing write request to a secondary storage replicator log of the secondary storage device;

process the existing write request by writing data to a secondary data volume of the secondary storage device; and

in response to processing the existing write request at the secondary storage device, notify the application that the existing write request is complete.

17. The non-transitory computer-readable medium of claim 15 , wherein, to process the new write request via the asynchronous replication, the computer-executable instructions further cause the computing device to:

receive the new write request from an application of the computing device;

log the new write request to a storage replicator log of the computing device;

process the new write request by writing data to a data volume of the computing device;

in response to processing the new write request at the computing device, notify the application that the new write request is complete;

transmit the new write request to a secondary storage device at a later point in time;

log the new write request to a secondary storage replicator log of the secondary storage device; and

process the new write request to write data to a secondary data volume of the secondary storage device.

18. The non-transitory computer-readable medium of claim 15 , wherein the computer-executable instructions further cause the computing device to:

in response to deciding to switch from the asynchronous replication mode to the synchronous replication mode, associate a different new write request with metadata indicating that the different new write request was issued while in the synchronous replication mode and associate the different new write request with a new generation number;

process a different existing write request via the asynchronous replication based on metadata indicating that the different existing write request was issued while in the asynchronous replication mode and an old generation number of the different existing write request indicating the different existing write request was generated while in the asynchronous replication mode;

process the different new write request via the synchronous replication based on the metadata of the different new write request and the new generation number of the different new write request; and

in response to determining that each existing write request has been processed, changing to the synchronous replication mode.

19. The non-transitory computer-readable medium of claim 18 , wherein the computer-executable instructions further cause the computing device to:

in response to deciding to switch from the asynchronous replication mode to the synchronous replication mode, generate the new generation number by incrementing the old generation number to indicate a switch in replication modes;

generate a counter indicative of a total number of different existing write requests generated while in the asynchronous replication mode;

decrement the counter for each different existing write request that has been processed; and

in response to the counter reaching a predetermined value indicating that each of the different existing write requests has been processed, change to the synchronous replication mode.

20. The non-transitory computer-readable medium of claim 15 , wherein the computer-executable instructions further cause the computing device to:

decide to switch from the synchronous replication mode of the volume replication system to the asynchronous replication mode based on a threshold of a computing environment of the computing device by:

determining that the threshold has been exceeded; and

in response to determining that the threshold has been exceeded, deciding to change to the asynchronous replication mode.

Assignments (11)
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/0944 →
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 052423/0596 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0460 →
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 052423/0596 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 9, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052368/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: BANKAR, PRITAM; DIGHE, SUMIT; MARATHE, SHAILESH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 051115/0673 →
Cited By (3)
US 12,417,176 US 12,541,589 US 12,688,055