IP Library Granted Patent US 10,198,192
Granted Patent B2
US 10,198,192 · App. 14/673,898 · Granted Feb 5, 2019

Systems and methods for improving quality of service within hybrid storage systems

Inventors: Prasanna Wakhare (Pune, IN); Niranjan Pendharkar (Pune, IN)
Assignee: Veritas Technologies LLC
G06F3/0613G06F3/061G06F3/0605G06F3/0653G06F3/0665G06F3/0685G06F9/45545G06F2009/45562
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 10,198,192
App. No.
14/673,898
Granted
Feb 5, 2019
Kind
B2
Abstract

The disclosed computer-implemented method for improving quality of service within hybrid storage systems may include (1) monitoring a performance measurement of a hybrid storage system that includes first and second types of storage devices that handle I/O throughput in connection with an application, (2) determining, based at least in part on the monitored performance measurement, an approximate amount of the I/O throughput handled by the first type of storage device over a period of time, (3) determining, based at least in part on the approximate amount of I/O throughput, a rate at which the application is allowed to deliver subsequent I/O throughput to the hybrid storage system over a subsequent period of time, and then (4) regulating, based at least in part on the rate, the subsequent I/O throughput in connection with the application over the subsequent period of time. Various other methods, systems, and computer-readable media are also disclosed.

Claims (100)

1. A computer-implemented method for improving quality of service within hybrid storage systems, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

monitoring, during a first Input/Output (I/O) cycle, at least one performance measurement of a hybrid storage system that handles I/O operations in connection with at least one application, the hybrid storage system comprising:

a high-speed storage device; and

a low-speed storage device whose speed is slower than the high-speed storage device;

deducing, based at least in part on processing times of the I/O operations, an amount of the I/O operations handled by the high-speed storage device relative to the low-speed storage device during the first I/O cycle;

assigning a priority level to the application;

assigning another priority level to at least one other application that contributes to the I/O operations handled by the hybrid storage system during the first I/O cycle;

scaling the priority level of the application by multiplying the priority level of the application by a scaling factor;

scaling the other priority level of the other application by multiplying the other priority level of the other application by the scaling factor;

calculating a rate at which the application is allowed to deliver subsequent I/O operations to the hybrid storage system during a second I/O cycle based at least in part on:

the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device during the first I/O cycle;

an amount of I/O operations that originated from the application and were handled by the high-speed storage device during the first I/O cycle;

a user-specified percentage of the high-speed storage device;

the scaled priority level of the application;

a sum of the scaled priority level of the application and the other scaled priority level of the other application;

a total capacity of the hybrid storage system; and

a duration of the second I/O cycle; and

regulating the subsequent I/O operations in connection with the application during the second I/O cycle by:

allotting the application a certain number of I/O credits corresponding to the calculated rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system during the second I/O cycle; and

applying the calculated rate to the application during the second I/O cycle.

2. The method of claim 1 , wherein monitoring the performance measurement of the hybrid storage system comprises at least one of:

counting the number of I/O operations performed on the high-speed storage device in connection with the application during the first I/O cycle; and

counting the number of I/O operations performed on the low-speed storage device in connection with the application during the first I/O cycle.

3. The method of claim 1 , wherein:

deducing the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device comprises determining a percentage of the I/O operations that was serviced by the high-speed storage device as opposed to the low-speed storage device during the first I/O cycle.

4. The method of claim 3 , wherein calculating the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system comprises factoring the percentage of I/O operations serviced by the high-speed storage device into a formula used to calculate the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system.

5. The method of claim 3 , wherein calculating the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system comprises:

decreasing the rate at which the application is allowed to deliver subsequent I/O operations to the hybrid storage system during the second I/O cycle due at least in part to:

the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device; and

the priority level assigned to the application relative to the other priority level assigned to the other application.

6. The method of claim 5 , wherein decreasing the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system comprises factoring the amount of I/O operations handled by the high-speed storage device and the priority level assigned to the application into a formula used to calculate the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system.

7. The method of claim 1 , further comprising:

increasing, due at least in part to the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device, a rate at which the other application is allowed to contribute to the subsequent I/O operations delivered to the hybrid storage system during the second I/O cycle; and

regulating, based at least in part on the increased rate at which the other application is allowed to contribute to the subsequent I/O operations delivered to the hybrid storage system, the subsequent I/O operations in connection with the other application during the second I/O cycle.

8. The method of claim 1 , wherein regulating the subsequent I/O operations in connection with the application during the second I/O cycle comprises:

ensuring that the hybrid storage system does not handle a number of I/O operations that exceeds the number of allotted I/O credits in connection with the application during the second I/O cycle.

9. The method of claim 8 , wherein ensuring that the hybrid storage system does not handle a number of I/O operations that exceeds the number of allotted I/O credits comprises at least one of:

preventing the application from delivering a number of I/O operations that exceeds the number of allotted I/O credits to the hybrid storage system during the second I/O cycle; and

preventing the hybrid storage system from performing a number of I/O operations that exceeds the number of allotted I/O credits in connection with the application during the second I/O cycle.

10. The method of claim 1 , wherein the application comprises at least one of:

a virtual machine; and

a plurality of virtual machines.

11. A system for improving quality of service within hybrid storage systems, the system comprising:

a monitoring module, stored in memory, that:

monitors, during a first Input/Output (I/O) cycle, at least one performance measurement of a hybrid storage system that handles I/O operations in connection with at least one application, the hybrid storage system comprising:

a high-speed storage device; and

a low-speed storage device whose speed is slower than the high-speed storage device;

deduces, based at least in part on processing times of the I/O operations, an amount of the I/O operations handled by the high-speed storage device relative to the low-speed storage device during the first I/O cycle;

a determination module, stored in memory, that:

assigns a priority level to the application;

assigns another priority level to at least one other application that contributes to the I/O operations handled by the hybrid storage system during the first I/O cycle;

scales the priority level of the application by multiplying the priority level of the application by a scaling factor;

scales the other priority level of the other application by multiplying the other priority level of the other application by the scaling factor; and

calculates a rate at which the application is allowed to deliver subsequent I/O operations to the hybrid storage system during a second I/O cycle based at least in part on:

the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device during the first I/O cycle;

an amount of I/O operations that originated from the application and were handled by the high-speed storage device during the first I/O cycle;

a user-specified percentage of the high-speed storage device;

the scaled priority level of the application;

a sum of the scaled priority level of the application and the other scaled priority level of the other application;

a total capacity of the hybrid storage system; and

a duration of the second I/O cycle;

a regulation module that regulates the subsequent I/O operations in connection with the application during the second I/O cycle by:

allotting the application a certain number of I/O credits corresponding to the calculated rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system during the second I/O cycle; and

applying the calculated rate to the application during the second I/O cycle; and

at least one physical processor that executes the monitoring module, the determination module, and the regulation module.

12. The system of claim 11 , wherein the monitoring module monitors the performance measurement of the hybrid storage system by at least one of:

counting the number of I/O operations performed on the high-speed storage device in connection with the application during the first I/O cycle; and

counting the number of I/O operations performed on the low-speed storage device in connection with the application during the first I/O cycle.

13. The system of claim 11 , wherein:

the determination module decreases the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device comprises determining a percentage of the I/O operations that was serviced by the high-speed storage device as opposed to the low-speed storage device during the first I/O cycle.

14. The system of claim 13 , wherein the determination module decreases the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system by factoring the percentage of I/O operations serviced by the high-speed storage device into a formula used to calculate the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system.

15. The system of claim 13 , wherein the determination module calculates the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system by:

decreasing the rate at which the application is allowed to deliver subsequent I/O operations to the hybrid storage system during the second I/O cycle due at least in part to:

the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device; and

the priority level assigned to the application relative to the other priority level assigned to the other application.

16. The system of claim 15 , wherein the determination module decreases the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system by factoring the amount of I/O operations handled by the high-speed storage device and the priority level assigned to the application into a formula used to calculate the rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system.

17. The system of claim 11 , wherein:

the determination module further increases, due at least in part to the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device, a rate at which the other application is allowed to contribute to the subsequent I/O operations delivered to the hybrid storage system during the second I/O cycle; and

the regulation module further regulates, based at least in part on the increased rate at which the other application is allowed to contribute to the subsequent I/O operations delivered to the hybrid storage system, the subsequent I/O operations in connection with the other application during the second I/O cycle.

18. The system of claim 11 , wherein:

the regulation module regulates the subsequent I/O operations in connection with the application during the second I/O cycle by ensuring that the hybrid storage system does not handle a number of I/O operations that exceeds the number of allotted I/O credits in connection with the application during the second I/O cycle.

19. The system of claim 18 , wherein the regulation module ensures that the hybrid storage system does not handle a number of I/O operations that exceeds the number of allotted I/O credits by at least one of:

preventing the application from delivering a number of I/O operations that exceeds the number of allotted I/O credits to the hybrid storage system during the second I/O cycle; and

preventing the hybrid storage system from performing a number of I/O operations that exceeds the number of allotted I/O credits in connection with the application during the second I/O cycle.

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:

monitor, during a first Input/Output (I/O) cycle, at least one performance measurement of a hybrid storage system that handles I/O operations in connection with at least one application, the hybrid storage system comprising:

a high-speed storage device; and

a low-speed storage device whose speed is slower than the high-speed storage device;

deduce, based at least in part on processing times of the I/O operations, an amount of the I/O operations handled by the high-speed storage device relative to the low-speed storage device during the first I/O cycle;

scale the priority level of the application by multiplying the priority level of the application by a scaling factor;

scale the other priority level of the other application by multiplying the other priority level of the other application by the scaling factor;

calculate a rate at which the application is allowed to deliver subsequent I/O operations to the hybrid storage system during a second I/O cycle based at least in part on:

the amount of I/O operations handled by the high-speed storage device relative to the low-speed storage device during the first I/O cycle;

an amount of I/O operations that originated from the application and were handled by the high-speed storage device during the first I/O cycle;

a user-specified percentage of the high-speed storage device;

the scaled priority level of the application;

a sum of the scaled priority level of the application and the other scaled priority level of the other application;

a total capacity of the hybrid storage system; and

a duration of the second I/O cycle; and

regulate the subsequent I/O operations in connection with the application during the second I/O cycle by allotting the application a certain number of I/O credits corresponding to the calculated rate at which the application is allowed to deliver the subsequent I/O operations to the hybrid storage system during the second I/O cycle.

Assignments (16)
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 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
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 Mar 31, 2015
From: WAKHARE, PRASANNA; PENDHARKAR, NIRANJAN
To: SYMANTEC CORPORATION
Reel/Frame 035295/0001 →
Continuity (1)
Related Publication 20160291882A1 · Oct 6, 2016
Cited By (1)
US 12,405,824