IP Library Granted Patent US 11,816,043
Granted Patent B2
US 11,816,043 · App. 16/964,134 · Granted Nov 14, 2023

System and method for managing resources of a storage device and quantifying the cost of I/O requests

Inventors: Sheng Qiu (Sunnyvale, CA); Yu Du (Hangzhou, CN); Fei Liu (Sunnyvale, CA); Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F13/161
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 11,816,043
App. No.
16/964,134
Granted
Nov 14, 2023
Kind
B2
Abstract

One embodiment facilitates measurement of a performance of a storage device. During operation, the system determines a normalized cost for an I/O request, wherein the normalized cost is independent of an access pattern and a type of the I/O request, wherein the normalized cost is indicated by a first number of virtual I/O operations consumed by the I/O request, and wherein a virtual I/O operation is used as a logical unit of cost associated with physical I/O operations. The system identifies a performance metric for the storage device by calculating a second number of virtual I/O operations per second which can be executed by the storage device. The system allocates incoming I/O requests to the storage device based on the performance metric, e.g., to satisfy a Quality of Service requirement, thereby causing an enhanced measurement of the performance of the storage device.

Claims (83)

1. A computer-implemented method for facilitating measurement of a performance of a storage device, the method comprising:

determining a normalized cost for an I/O request, wherein the normalized cost is independent of an access pattern and a type of the I/O request, wherein the normalized cost is indicated by a first number of virtual I/O operations consumed by the I/O request, and wherein a virtual I/O operation is used as a logical unit of cost associated with physical I/O operations;

identifying a performance metric for the storage device by calculating a second number of virtual I/O operations per second which can be executed by the storage device;

allocating incoming I/O requests to the storage device based on the performance metric;

assigning portions of the second number of virtual I/O operations per second to one or more applications;

receiving a second I/O request from an application; and

scheduling the second I/O request based on a respective portion of the second number of virtual I/O operations per second assigned to the application.

2. The method of claim 1 , wherein determining the normalized cost comprises:

determining a cost factor for the I/O request, which involves:

selecting a set of test cost factor values;

executing varied workloads on the storage device based on varying I/O request sizes and a varying ratio of read I/O requests to write I/O requests;

measuring the performance of the storage device based on a third number of virtual I/O operations per second executed on the storage device for each workload;

determining a test cost factor value which projects a most constant virtual I/O operations per second performance across all the workloads; and

setting the cost factor for the I/O request to the determined test cost factor value.

3. The method of claim 1 , further comprising:

generating a data structure which maps a range of latency values to a fourth number of virtual I/O operations per second that can be executed by the storage device.

4. The method of claim 1 , wherein assigning the portions of the second number of virtual I/O operations per second is based on one or more of:

a priority associated with a respective application;

a user associated with the respective application; and

a predetermined time period which, when exceeded, causes a refresh or reassigning of the portions of the second number of virtual I/O operations per second to the one or more application.

5. The method of claim 1 , wherein scheduling the second I/O request is further based on:

a priority associated with the second I/O request;

a priority associated with the respective application; and

a user associated with the respective application.

6. The method of claim 2 , wherein determining the normalized cost further comprises:

determining a first ratio of a size of the I/O request to a predetermined size for a base unit; and

scaling the first ratio by the determined cost factor for the I/O request.

7. The method of claim 3 , further comprising:

obtaining the data structure in response to one or more of:

initiating a startup or a configuration procedure; and

requesting, by the storage device or by a user or application associated with the storage device, the data structure.

8. The method of claim 3 , further comprising:

determining a specific read latency or a specific write latency based on a size of a specific I/O request; and

performing a lookup in the data structure, based on the specific read latency or the specific write latency, to obtain a fifth number of virtual I/O operations per second mapped to a second range of latency values which include the specific read latency or the specific write latency.

9. A computer system for facilitating measurement of a performance of a storage device, the system comprising:

a processor; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method, the method comprising:

determining a normalized cost for an I/O request, wherein the normalized cost is independent of an access pattern and a type of the I/O request, wherein the normalized cost is indicated by a first number of virtual I/O operations consumed by the I/O request, and wherein a virtual I/O operation is used as a logical unit of cost associated with physical I/O operations;

identifying a performance metric for the storage device by calculating a second number of virtual I/O operations per second which can be executed by the storage device;

allocating incoming I/O requests to the storage device based on the performance metric;

assigning portions of the second number of virtual I/O operations per second to one or more applications;

receiving a second I/O request from an application; and

scheduling the second I/O request based on a respective portion of the second number of virtual I/O operations per second assigned to the application.

10. The computer system of claim 9 , wherein determining the normalized cost comprises:

determining a cost factor for the I/O request, which involves:

selecting a set of test cost factor values;

executing varied workloads on the storage device based on varying I/O request sizes and a varying ratio of read I/O requests to write I/O requests;

measuring the performance of the storage device based on a third number of virtual I/O operations per second executed on the storage device for each workload;

determining a test cost factor value which projects a most constant virtual I/O operations per second performance across all the workloads; and

setting the cost factor for the I/O request to the determined test cost factor value.

11. The computer system of claim 9 , wherein the method further comprises:

generating a data structure which maps a range of latency values to a fourth number of virtual I/O operations per second that can be executed by the storage device.

12. The computer system of claim 9 , wherein assigning the portions of the second number of virtual I/O operations per second is based on one or more of:

a priority associated with a respective application;

a user associated with the respective application; and

a predetermined time period which, when exceeded, causes a refresh or reassigning of the portions of the second number of virtual I/O operations per second to the one or more application.

13. The computer system of claim 9 , wherein scheduling the second I/O request is further based on:

a priority associated with the second I/O request;

a priority associated with the respective application; and

a user associated with the respective application.

14. The computer system of claim 10 , wherein determining the normalized cost further comprises:

determining a first ratio of a size of the I/O request to a predetermined size for a base unit; and

scaling the first ratio by the determined cost factor for the I/O request.

15. The computer system of claim 11 , wherein the method further comprises:

obtaining the data structure in response to one or more of:

initiating a startup or a configuration procedure; and

requesting, by the storage device or by a user or application associated with the storage device, the data structure.

16. The computer system of claim 11 , wherein the method further comprises:

determining a specific read latency or a specific write latency based on a size of a specific I/O request; and

performing a lookup in the data structure, based on the specific read latency or the specific write latency, to obtain a fifth number of virtual I/O operations per second mapped to a second range of latency values which include the specific read latency or the specific write latency.

17. An apparatus for facilitating measurement of a performance of a storage device, the device comprising:

a cost-determining module configured to determine a normalized cost for an I/O request, wherein the normalized cost is independent of an access pattern and a type of the I/O request, wherein the normalized cost is indicated by a first number of virtual I/O operations consumed by the I/O request, and wherein a virtual I/O operation is used as a logical unit of cost associated with physical I/O operations;

a virtual I/O operation per second (VIOPS) calculating module configured to identify a performance metric for the storage device by calculating a second number of virtual I/O operations per second which can be executed by the storage device;

a request-scheduling module configured to allocate incoming I/O requests to the storage device based on the performance metric,

wherein the cost-determining module is further configured to determine a cost factor for the I/O request, which involves:

selecting a set of test cost factor values;

executing varied workloads on the storage device based on varying I/O request sizes and a varying ratio of read I/O requests to write I/O requests;

measuring the performance of the storage device based on a third number of virtual I/O operations per second executed on the storage device for each workload;

determining a test cost factor value which projects a most constant virtual I/O operations per second performance across all the workloads; and

setting the cost factor for the I/O request to the determined test cost factor value.

18. The apparatus of claim 17 , wherein the cost-determining module is further configured to:

determine a first ratio of a size of the I/O request to a predetermined size for a base unit; and

scale the first ratio by the determined cost factor for the I/O request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: QIU, SHENG; DU, YU; LIU, FEI; LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 057302/0491 →
Continuity (1)
Related Publication 20210365390A1 · Nov 25, 2021