IP Library Granted Patent US 9,338,228
Granted Patent B1
US 9,338,228 · App. 14/873,139 · Granted May 10, 2016

I/O scheduling and load balancing across the multiple nodes of a clustered environment utilizing data volume based scheduling priorities

Inventors: Suhas Dantkale (Sunnyvale, CA); Satyendra Thakur (Sunnyvale, CA); Kirubakaran Kaliannan (Beaverton, OR); Prasad Vadlamannati (Cupertino, CA)
Assignee: Veritas Technologies LLC
H04L67/1008H04L67/1095H04L67/1097
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,338,228
App. No.
14/873,139
Granted
May 10, 2016
Kind
B1
Abstract

Write operations are scheduled for multiple nodes in a shared storage cluster that supports volume replication. Requests are received from nodes for allocation of space for write operations in a replication log. In response to a received request, the current capacity of the requesting node to manage a backlog can be determined. The amount of space in the replication log allocated to the node is then calibrated to the node's capacity, thereby preventing self-throttling. A separate priority can be assigned to each volume, and space in the replication log assigned to each volume based on its priority. Nodes can target synchronous and other latency sensitive operations to higher priority volumes. A single global queue can be maintained to schedule write operations for all nodes, thereby providing a fair scheduling. A separate local queue can be maintained for each node, thereby providing specific levels of preference to specific nodes.

Claims (30)

1. A computer implemented method for scheduling write operations of a plurality of nodes, thereby balancing a load of storage input/output operations in a clustering and storage environment that utilizes shared storage comprising a plurality of data volumes, wherein the clustering and storage environment supports replication of the data volumes, the method comprising the steps of:

receiving, by a computer, requests from nodes of the clustering and storage environment for allocation of space for write operations in a replication log, wherein the nodes perform write operations by writing first to the replication log and subsequently to the shared storage, wherein an order of the write operations to the replication log matches an order of write operations to the shared storage, and wherein the clustering and storage environment utilizes the order and content of the write operations to the replication log to replicate the data volumes of the shared storage to a secondary site, thereby preserving write-order fidelity;

assigning, by the computer, a scheduling priority to each one of the plurality of data volumes of the shared storage; and

allocating, by the computer, space in the replication log to the each one of the plurality of data volumes based on its assigned scheduling priority, such that write operations to data volumes with higher assigned scheduling priorities are processed at a higher level of priority than write operations to data volumes with lower assigned scheduling priorities.

2. The method of claim 1 further comprising:

targeting specific ones of the plurality of nodes targeting synchronous and other higher latency sensitive write operations to higher priority volumes, and targeting asynchronous and other lower priority write operations to lower priority volumes.

3. The method of claim 1 wherein the receiving the requests from the nodes of the clustering and storage environment for allocation of space for the write operations further comprises:

receiving the requests from the nodes of the clustering and storage environment for allocation of space for the write operations, each one of the received requests further comprises information indicative of a priority of a corresponding write operation; and

scheduling the write operations at a level of priority indicated in corresponding received requests.

4. The method of claim 1 further comprising:

receiving input entered by a user indicating a scheduling priority to assign a specific data volume; and

assigning the scheduling priority to the specific data volume in response to the received input.

5. The method of claim 1 further comprising:

receiving input entered by a user indicating an adjustment to make to a scheduling priority assigned to a specific data volume; and

adjusting the scheduling priority assigned to the specific data volume as indicated by the received input.

6. A non-transitory computer readable-storage medium for scheduling write operations of a plurality of nodes, thereby balancing a load of storage input/output operations in a clustering and storage environment that utilizes shared storage comprising a plurality of data volumes, wherein the clustering and storage environment supports replication of the data volumes, the non-transitory computer readable-storage medium storing computer executable instructions that, when loaded into computer memory and executed by at least one processor of a computing device, cause the computing device to perform the following steps:

receiving requests from nodes of the clustering and storage environment for allocation of space for write operations in a replication log, wherein the nodes perform write operations by writing first to the replication log and subsequently to the shared storage, wherein an order of the write operations to the replication log matches an order of write operations to the shared storage, and wherein the clustering and storage environment utilizes the order and content of the write operations to the replication log to replicate the data volumes of the shared storage to a secondary site, thereby preserving write-order fidelity;

assigning a scheduling priority to each one of the plurality of data volumes of the shared storage; and

allocating space in the replication log to the each one of the plurality of data volumes based on its assigned scheduling priority, such that write operations to data volumes with higher assigned scheduling priorities are processed at a higher level of priority than write operations to data volumes with lower assigned scheduling priorities.

7. The non-transitory computer readable-storage medium of claim 6 further comprising:

targeting specific ones of the plurality of nodes targeting synchronous and other higher latency sensitive write operations to higher priority volumes, and targeting asynchronous and other lower priority write operations to lower priority volumes.

8. The non-transitory computer readable-storage medium of claim 6 wherein the receiving the requests from the nodes of the clustering and storage environment for allocation of space for the write operations further comprises:

receiving the requests from the nodes of the clustering and storage environment for allocation of space for the write operations, each one of the received requests further comprises information indicative of a priority of a corresponding write operation; and

scheduling the write operations at a level of priority indicated in corresponding received requests.

9. The non-transitory computer readable-storage medium of claim 6 further comprising:

receiving input entered by a user indicating a scheduling priority to assign a specific data volume; and

assigning the scheduling priority to the specific data volume in response to the received input.

10. The non-transitory computer readable-storage medium of claim 6 further comprising:

receiving input entered by a user indicating an adjustment to make to a scheduling priority assigned to a specific data volume; and

adjusting the scheduling priority assigned to the specific data volume as indicated by the received input.

Assignments (14)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
SECURITY INTEREST Recorded Mar 17, 2025
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070530/0497 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 Oct 1, 2015
From: DANTKALE, SUHAS; THAKUR, SATYENDRA; KALIANNAN, KIRUBAKARAN; VADLAMANNATI, PRASAD
To: SYMANTEC CORPORATION
Reel/Frame 036708/0889 →
Continuity (1)
Division 14145875 · Dec 31, 2013