IP Library Granted Patent US 9,959,180
Granted Patent B1
US 9,959,180 · App. 14/939,574 · Granted May 1, 2018

Systems and methods for shipping an I/O operation to prevent replication failure

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,959,180
App. No.
14/939,574
Granted
May 1, 2018
Kind
B1
Abstract

A computer-implemented method for shipping I/O operations to prevent replication failure may include 1) attempting to perform an I/O operation in a system configured to replicate data from a data cluster to another data cluster, 2) detecting a failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster, and, in response to detecting the failure, 3) shipping the I/O operation from a node originally responsible for servicing the I/O operation to another node to complete the I/O operation without failing the system's replication of data from the data cluster to the other data cluster. Various other methods, systems, and computer-readable media are also disclosed.

Claims (58)

1. A computer-implemented method for shipping I/O operations to prevent replication failure, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

attempting to perform an I/O operation in a system configured to replicate data from a data cluster to another data cluster;

detecting a failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster;

prior to shipping the I/O operation:

determining a performance impact of shipping the I/O operation from a node originally responsible for servicing the I/O operation to another node within the same data cluster;

determining that the performance impact of shipping the I/O operation from the node originally responsible for servicing the I/O operation to the other node within the same data cluster satisfies at least one performance-related criterion;

shipping the I/O operation, in response to detecting the failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster, from the node originally responsible for servicing the I/O operation to the other node within the same data cluster to complete the I/O operation without failing the system's replication of data from the data cluster to the other data cluster, wherein:

the performance-related criterion includes at least one of a latency threshold, a CPU usage threshold, and a bandwidth threshold.

2. The computer-implemented method according to claim 1 ,

further comprising determining, at a later point in time, that the performance impact of shipping the I/O operation from the node originally responsible for servicing the I/O operation to the other node within the same data cluster fails to satisfy the performance-related criterion.

3. The computer-implemented method according to claim 2 , further comprising

gracefully stopping, on a node where the failure occurred, an application that caused the attempt to perform the I/O operation.

4. The computer-implemented method according to claim 1 , wherein shipping the I/O operation comprises:

determining that the I/O operation comprises a replication I/O operation associated with the system's replication of data from the data cluster to the other data cluster, as opposed to an application I/O operation associated with servicing an application;

shipping the I/O operation in response to the determination.

5. The computer-implemented method according to claim 1 , wherein the node originally responsible for servicing the I/O operation comprises a node within the other data cluster.

6. The computer-implemented method according to claim 5 , wherein shipping the I/O operation comprises:

determining that the failure is at least one of non-permanent and non-global;

shipping the I/O operation in response to the determination.

7. The computer-implemented method according to claim 1 , wherein the detection of the failure occurs during at least one of:

an initial synchronization operation that automatically performs synchronization to ensure that the other data cluster is up to date with the data cluster;

a full synchronization operation that transfers all data between the data cluster and the other data cluster;

a differential synchronization operation that transfers only differing data between the data cluster and the other data cluster.

8. The computer-implemented method according to claim 1 , wherein the system implements a replication log.

9. The computer-implemented method according to claim 8 , wherein the replication log comprises a bunker replication log for bunker-based replication in which the data cluster and the other data cluster are physically isolated from each other.

10. The computer-implemented method according to claim 8 , wherein the replication log, and a receiving data volume that receives the attempt to perform the I/O operation, are stored on separate storage devices.

11. The computer-implemented method according to claim 10 , wherein the failure comprises a failure to access the receiving data volume.

12. The computer-implemented method according to claim 11 , wherein:

the node originally responsible for servicing the I/O operation comprises a node within the data cluster;

the failure comprises a failure to write to the receiving data volume after the write has been recorded in the replication log;

shipping the I/O operation comprises shipping an application I/O operation associated with servicing an application;

the method further comprises shipping the write preserved in the replication log to the other node within the same data cluster.

13. The computer-implemented method according to claim 8 , wherein the failure comprises a failure to access the replication log.

14. The computer-implemented method according to claim 13 , wherein:

the I/O operation comprises an I/O operation on the replication log;

shipping the I/O operation comprises shipping the I/O operation so that the I/O operation is performed on the replication log by the other node within the same data cluster.

15. The computer-implemented method according to claim 13 , further comprising, in response to detecting the failure, switching a log maintenance role associated with the replication log from a current node to a different node.

16. The computer-implemented method according to claim 1 , wherein detecting the failure comprises detecting the failure during a recovery operation that attempts to recover replicated data in response to a previous failure.

17. The computer-implemented method according to claim 1 , wherein the I/O operation comprises an I/O operation on a data change map, wherein the data change map indicates where data differs between the data cluster and the other data cluster.

18. A system for shipping I/O operations to prevent replication failure, the system comprising:

an I/O module programmed to attempt to perform an I/O operation in the system which is configured to replicate data from a data cluster to another data cluster;

a detection module programmed to detect a failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster;

a shipping module programmed to:

prior to shipping the I/O operation:

determine a performance impact of shipping the I/O operation from a node originally responsible for servicing the I/O operation to another node within the same data cluster;

determine that the performance impact of shipping the I/O operation from the node originally responsible for servicing the I/O operation to the other node within the same data cluster satisfies at least one performance-related criterion;

ship the I/O operation, in response to detecting the failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster, from the node originally responsible for servicing the I/O operation to the other node within the same data cluster to complete the I/O operation without failing the system's replication of data from the data cluster to the other data cluster;

at least one processor configured to execute the I/O module, the detection module, and the shipping module, wherein:

the performance-related criterion includes at least one of a latency threshold, a CPU usage threshold, and a bandwidth threshold.

19. The system according to claim 18 , wherein the node originally responsible for servicing the I/O operation comprises a node within the other data cluster.

20. A non-transitory computer-readable-storage 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:

attempt to perform an I/O operation in a system configured to replicate data from a data cluster to another data cluster;

detect a failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster;

prior to shipping the I/O operation:

determine a performance impact of shipping the I/O operation from a node originally responsible for servicing the I/O operation to another node within the same data cluster;

determine that the performance impact of shipping the I/O operation from the node originally responsible for servicing the I/O operation to the other node within the same data cluster satisfies at least one performance-related criterion;

ship the I/O operation, in response to detecting the failure in at least part of the attempt to perform the I/O operation that threatens to fail the system's replication of data from the data cluster to the other data cluster, from the node originally responsible for servicing the I/O operation to the other node within the same data cluster to complete the I/O operation without failing the system's replication of data from the data cluster to the other data cluster, wherein:

the performance-related criterion includes at least one of a latency threshold, a CPU usage threshold, and a bandwidth threshold.

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 Nov 12, 2015
From: DASH, PRASANTA; NAYAK, YATIN; KALIANNAN, KIRUBAKARAN; THAKUR, SATYENDRA
To: SYMANTEC CORPORATION
Reel/Frame 037026/0589 →