IP Library Granted Patent US 9,218,256
Granted Patent B1
US 9,218,256 · App. 13/485,902 · Granted Dec 22, 2015

Systems and methods for shipping I/O operations 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,218,256
App. No.
13/485,902
Granted
Dec 22, 2015
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 (46)

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 replication system configured to replicate data from a data cluster to another data cluster, the replication system comprising a log maintenance node that maintains a replication log for replication;

detecting a failure in at least part of the attempt to perform the I/O operation that threatens to fail the replication system's replication of data from the data cluster to the other data cluster, the replication system being configured in a synchronous mode that attempts to perform arriving I/O operations through the log maintenance node;

determining that the I/O operation constitutes a replication I/O operation associated with the replication 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, performance-related criteria indicating that application I/O is more time sensitive than replication I/O;

shipping the I/O operation, based at least in part on the detecting the failure in at least part of the attempt to perform the I/O operation that threatens to fail the replication system's replication of data from the data cluster to the other data cluster, from the log maintenance node to another node within the same data cluster to complete the I/O operation without failing the replication system's replication of data from the data cluster to the other data cluster.

2. The computer-implemented method according to claim 1 , further comprising, prior to shipping the I/O operation:

determining a performance impact of shipping the I/O operation from the log maintenance node to the other node;

determining that the performance impact of shipping the I/O operation from the log maintenance node to the other node satisfies the performance-related criteria.

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

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

determining that a performance impact of shipping the other I/O operation from the log maintenance node to another node fails to satisfy the performance-related criteria.

4. The computer-implemented method according to claim 3 , further comprising gracefully stopping, on the node where the failure of the attempt to perform the other I/O operation occurred, the application that caused the attempt to perform the other I/O operation.

5. The computer-implemented method according to claim 1 , wherein the log maintenance node ships the I/O operation to a receiving node in the data cluster that originally received the I/O operation.

6. The computer-implemented method according to claim 5 ,

wherein, prior to the log maintenance node shipping the I/O operation to the receiving node, the receiving node shipped the I/O operation to the log maintenance node.

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

wherein:

the other node already possesses data for writing the I/O operation;

the I/O operation is shipped by simply instructing the other node to write the data that the other node already possesses.

8. The computer-implemented method according to claim 1 , wherein the log maintenance node ships the I/O operation to a node in the data cluster that is different than a receiving node that originally received the I/O operation.

9. The computer-implemented method according to claim 1 , 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 1 , 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 7 , wherein the other node comprises a receiving node in the data cluster that originally received the I/O operation.

13. The computer-implemented method according to claim 1 , 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.

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 the log maintenance node to a different node.

16. The computer-implemented method according to claim 1 , wherein detecting the failure in at least part of the attempt to perform the I/O operation triggers at least a partial deviation from the synchronous mode.

17. The computer-implemented method according to claim 1 , wherein:

the I/O operation is directed to the replication log;

the I/O operation is shipped at least in part by transferring log metadata to a receiving node in the data cluster that originally received the I/O operation.

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 a replication system configured to replicate data from a data cluster to another data cluster, the replication system comprising a log maintenance node that maintains a replication log for replication;

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 replication system's replication of data from the data cluster to the other data cluster, the replication system being configured in a synchronous mode that attempts to perform arriving I/O operations through the log maintenance node;

a shipping module programmed to:

determine that the I/O operation constitutes a replication I/O operation associated with the replication 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, performance-related criteria indicating that application I/O is more time sensitive than replication I/O;

ship the I/O operation, based at least in part on the detecting the failure in at least part of the attempt to perform the I/O operation that threatens to fail the replication system's replication of data from the data cluster to the other data cluster, from the log maintenance node to another node within the same data cluster to complete the I/O operation without failing the replication 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.

19. The system according to claim 18 , wherein the shipping module is programmed to ship the I/O operation to a receiving node in the data cluster that originally received the I/O operation.

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 replication system configured to replicate data from a data cluster to another data cluster, the replication system comprising a log maintenance node that maintains a replication log for replication;

detect a failure in at least part of the attempt to perform the I/O operation that threatens to fail the replication system's replication of data from the data cluster to the other data cluster, the replication system being configured in a synchronous mode that attempts to perform arriving I/O operations through the log maintenance node;

determine that the I/O operation constitutes a replication I/O operation associated with the replication 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, performance-related criteria indicating that application I/O is more time sensitive than replication I/O;

ship the I/O operation, based at least in part on the detecting the failure in at least part of the attempt to perform the I/O operation that threatens to fail the replication system's replication of data from the data cluster to the other data cluster, from the log maintenance node to another node in the same data cluster to complete the I/O operation without failing the replication system's replication of data from the data cluster to the other data cluster.

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 Jul 18, 2012
From: DASH, PRASANTA; NAYAK, YATIN; KALIANNAN, KIRUBAKARAN; THAKUR, SATYENDRA
To: SYMANTEC CORPORATION
Reel/Frame 028582/0113 →