IP Library Granted Patent US 9,075,856
Granted Patent B2
US 9,075,856 · App. 13/856,829 · Granted Jul 7, 2015

Systems and methods for distributing replication tasks within computing clusters

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,075,856
App. No.
13/856,829
Granted
Jul 7, 2015
Kind
B2
Abstract

A computer-implemented method for distributing replication tasks within computing clusters may include (1) identifying a primary volume that is replicated to a secondary volume, (2) identifying a computing cluster with access to the primary volume that includes at least a first node and a second node, (3) receiving a request to write data to the primary volume, (4) logging, via the first node, the request to write the data to the primary volume to a replication log, and (5) using the replication log to replicate, via the second node, the data to the secondary volume. Various other methods, systems, and computer-readable media are also disclosed.

Claims (99)

1. A computer-implemented method for distributing replication tasks within computing clusters, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a primary volume that is replicated to a secondary volume;

identifying a computing cluster with access to the primary volume, the computing cluster comprising at least a first node and a second node;

monitoring at least one property of the computing cluster;

receiving a request to write data to the primary volume;

selecting, based at least in part on the at least one property of the computing cluster, the first node to log the request to write the data to the primary volume to a replication log;

selecting, based at least in part on the at least one property of the computing cluster, the second node to use the replication log to replicate the data to the secondary volume;

logging, via the first node, the request to write the data to the primary volume to the replication log;

using the replication log to replicate, via the second node, the data to the secondary volume.

2. The computer-implemented method of claim 1 , wherein only one node within the computing cluster is capable of having read/write access to the replication log;

further comprising, prior to receiving the request to write the data to the primary volume:

configuring the first node with read/write access to the replication log;

configuring the second node with read-only access to the replication log.

3. The computer-implemented method of claim 1 , wherein:

the second node is configured with read-only access to the replication log;

using the replication log to replicate, via the second node, the data to the secondary volume comprises:

reading, at the second node, the data from the replication log;

replicating, via the second node, the data to the secondary volume;

receiving, at the second node, a notification that indicates that the data has been successfully replicated to the secondary volume;

sending, via the second node, a request to the first node that instructs the first node to update the replication log to reflect the data having been successfully replicated to the secondary volume.

4. The computer-implemented method of claim 1 , wherein more than one node within the computing cluster is capable of having read/write access to the replication log;

further comprising configuring, prior to receiving the request to write the data to the primary volume, the first node and the second node with read/write access to the replication log.

5. The computer-implemented method of claim 1 , wherein logging, via the first node, the request to write the data to the primary volume to the replication log comprises:

allocating, at the first node, a position in the replication log to which the request to write the data to the primary volume can be logged;

logging the request to write the data to the primary volume to the position in the replication log.

6. The computer-implemented method of claim 1 , wherein using the replication log to replicate, via the second node, the data to the secondary volume comprises:

reading, at the second node, the data from the replication log;

replicating, via the second node, the data to the secondary volume;

receiving, at the second node, a notification that indicates that the data has been successfully replicated to the secondary volume;

updating, at the second node, the replication log to reflect the data having been successfully replicated to the secondary volume.

7. The computer-implemented method of claim 1 , wherein:

monitoring the at least one property of the computing cluster comprises monitoring the input/output load on the first node;

selecting the first node comprises:

determining that the input/output load on the first node is greater than the input/output load on any other node in the computing cluster;

selecting, based at least in part on determining that the input/output load of the first node is greater than the input/output load of any other node in the computing cluster, the first node to log the request to write the data to the primary volume to the replication log.

8. The computer-implemented method of claim 1 , wherein:

monitoring the at least one property of the computing cluster comprises monitoring at least one property of the second node;

selecting the second node comprises selecting, based at least in part on the property of the second node, the second node to use the replication log to replicate the data to the secondary volume.

9. The computer-implemented method of claim 8 , wherein the property of the second node comprises at least one of:

the input/output load on the second node;

central-processing-unit availability on the second node;

memory availability on the second node;

network-bandwidth availability on the second node;

whether the second node has access to the replication log;

whether the second node has access to a network interface required to replicate the primary volume to the secondary volume.

10. The computer-implemented method of claim 1 , further comprising failing over, to an additional node within the computing cluster, at least one replication task associated with replicating the primary volume to the secondary volume.

11. The computer-implemented method of claim 1 , wherein the first node is distinct from the second node.

12. A system for distributing replication tasks within computing clusters, the system comprising:

an identifying module programmed to:

identify a primary volume that is replicated to a secondary volume;

identify a computing cluster with access to the primary volume, the computing cluster comprising at least a first node and a second node;

a receiving module programmed to receive a request to write data to the primary volume;

a configuring module programmed to:

monitor at least one property of the computing cluster;

select, based at least in part on the at least one property of the computing cluster, the first node to log the request to write the data to the primary volume to a replication log;

select, based at least in part on the at least one property of the computing cluster, the second node to use the replication log to replicate the data to the secondary volume;

a logging module programmed to log, via the first node, the request to write the data to the primary volume to the replication log;

a replicating module programmed to use the replication log to replicate, via the second node, the data to the secondary volume;

at least one processor configured to execute the identifying module, the receiving module, the logging module, and the replicating module.

13. The system of claim 12 , wherein:

only one node within the computing cluster is capable of having read/write access to the replication log;

the configuring module is further programmed to, prior to receiving the request to write the data to the primary volume:

configure the first node with read/write access to the replication log;

configure the second node with read-only access to the replication log.

14. The system of claim 12 , wherein:

the second node is configured with read-only access to the replication log;

the replicating module is programmed to use the replication log to replicate, via the second node, the data to the secondary volume by:

reading, at the second node, the data from the replication log;

replicating, via the second node, the data to the secondary volume;

receiving, at the second node, a notification that indicates that the data has been successfully replicated to the secondary volume;

sending, via the second node, a request to the first node that instructs the first node to update the replication log to reflect the data having been successfully replicated to the secondary volume.

15. The system of claim 12 , wherein:

more than one node within the computing cluster is capable of having read/write access to the replication log;

the configuring module is further programmed to configure, prior to receiving the request to write the data to the primary volume, the first node and the second node with read/write access to the replication log.

16. The system of claim 12 , wherein the logging module is programmed to log, via the first node, the request to write the data to the primary volume to the replication log by:

allocating, at the first node, a position in the replication log to which the request to write the data to the primary volume can be logged;

logging the request to write the data to the primary volume to the position in the replication log.

17. The system of claim 12 , wherein the replicating module is programmed to use the replication log to replicate, via the second node, the data to the secondary volume by:

reading, at the second node, the data from the replication log;

replicating, via the second node, the data to the secondary volume;

receiving, at the second node, a notification that indicates that the data has been successfully replicated to the secondary volume;

updating, at the second node, the replication log to reflect the data having been successfully replicated to the secondary volume.

18. The system of claim 12 , wherein the configuring module is programmed to:

monitor the at least one property of the computing cluster by monitoring the input/output load on the first node;

select the first node by:

determining that the input/output load on the first node is greater than the input/output load on any other node in the computing cluster;

selecting, based at least in part on determining that the input/output load of the first node is greater than the input/output load of any other node in the computing cluster, the first node to log the request to write the data to the primary volume to the replication log.

19. The system of claim 12 , wherein the configuring module is programmed to:

monitor the at least one property of the computing cluster by monitoring at least one property of the second node;

select the second node by selecting, based at least in part on the property of the second node, the second node to use the replication log to replicate the data to the secondary volume.

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:

identify a primary volume that is replicated to a secondary volume;

identify a computing cluster with access to the primary volume, the computing cluster comprising at least a first node and a second node;

monitor at least one property of the computing cluster;

receive a request to write data to the primary volume;

select, based at least in part on the at least one property of the computing cluster, the first node to log the request to write the data to the primary volume to a replication log;

select, based at least in part on the at least one property of the computing cluster, the second node to use the replication log to replicate the data to the secondary volume;

log, via the first node, the request to write the data to the primary volume to the replication log;

use the replication log to replicate, via the second node, the data to the secondary volume.

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 Apr 4, 2013
From: DANTKALE, SUHAS; RAUT, YOJANA
To: SYMANTEC CORPORATION
Reel/Frame 030153/0758 →