IP Library Granted Patent US 10,592,137
Granted Patent B1
US 10,592,137 · App. 15/494,929 · Granted Mar 17, 2020

Method, apparatus and computer program product for determining response times of data storage systems

Inventors: Muzhar S. Khokhar (Shrewsbury, MA); Shyam Reddy (Westborough, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0629G06F3/061G06F3/0653G06F3/0659G06F12/0891G06F2212/60
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,592,137
App. No.
15/494,929
Granted
Mar 17, 2020
Kind
B1
Abstract

Techniques are disclosed for use in determining response times of data storage systems. In one embodiment, there is disclosed a method. The method comprises defining a data storage system being designed. The method also comprises defining a first workload for the data storage system. The first workload including a first IOPS (input-output operations per second) requirement and respective percentages of read and write IO (input-output) requests. The method also comprises applying the first workload to the data storage system, thus defining a IO request queue length. The method further comprises determining a response time for handling an IO request at the data storage system, wherein the said determination is based on the IO request queue length, the respective percentages of read and write IO requests, a service time relating to servicing of an IO request by a data storage device of the data storage system, a read cache hit response time and a write cache hit response time associated with a cache of the data storage system.

Claims (62)

1. A method, comprising:

defining, by processing circuitry, a data storage system being designed;

defining, by processing circuitry, a first workload for the data storage system, wherein the first workload includes a first IOPS (input-output operations per second) requirement and respective percentages of read and write IO (input-output) requests, the first workload being defined by at least one of: a simulated real-world workload, historical customer information, default application information, and customer input;

applying, by processing circuitry, the first workload to the data storage system, thus defining a IO request queue length; and

determining, by processing circuitry, a response time for handling an IO request at the data storage system, wherein the said determination is based on the IO request queue length, the respective percentages of read and write IO requests, a service time relating to servicing of an IO request by a data storage device of the data storage system, a read cache hit response time and a write cache hit response time associated with a cache of the data storage system;

wherein the IO request queue length is defined as a numerical value; and

wherein applying the first workload to the data storage system, thus defining a IO request queue length, comprises:

generating a first value corresponding to a ratio of the first IOPS requirement to a total potential IOPS associated with one or more data storage devices of the data storage system; and

determining a second value corresponding to a ratio of the first value to one minus the first value, wherein the second value describes the IO request queue length.

2. The method as claimed in claim 1 , wherein defining the data storage system comprises defining a type of data storage device in the data storage system to handle IO requests.

3. The method as claimed in claim 1 , wherein defining the data storage system comprises defining a storage tier in the data storage system that possesses a particular level of performance to handle IO requests.

4. The method as claimed as claimed in claim 1 , wherein the IO request queue length is defined as a numerical value; and

wherein applying the first workload to the data storage system, thus defining a IO request queue length, comprises:

generating a first value corresponding to a ratio of the first IOPS requirement to a total potential IOPS associated with one or more data storage devices of the data storage system;

determining a second value corresponding to a ratio of the first value to one minus the first value;

determining that the first value exceeds a first threshold;

in response to the said determination that the first value exceeds the first threshold, generating a third value corresponding to a base ten logarithm of the second value;

producing a fourth value corresponding to a factors time the third value; and

determining a fifth value corresponding to the fourth value minus one, wherein the fifth value describes the IO request queue length.

5. The method as claimed in claim 1 , wherein the data storage system comprises solid state devices to handle IO requests; and

wherein applying the first workload to the data storage system, thus defining a IO request queue length, comprises:

generating a first value corresponding to a ratio of the first IOPS requirement to a total potential IOPS associated with one or more data storage devices of the data storage system;

determining a second value corresponding to a ratio of the first value to one minus the first value;

reducing the read IO percentage by a factors time the read IO percentage;

reducing the write IO percentage by a factors time the write IO percentage;

summing the reduced read IO percentage and the reduced write IO percentage; and determining a third value corresponding to a product of the summed IO percentage and the second value, wherein the third value describes the IO request queue length.

6. The method as claimed in claim 1 , further comprising:

determining whether the IO request queue length is greater than a cache flush threshold, wherein the cache flush threshold represents a level at which the cache flushes data therefrom; and

when the IO request queue length is greater than the cache flush threshold, increasing the request queue length by a factors time the IO request queue length.

7. The method as claimed in claim 1 , wherein determining the response time includes generating a disk response time corresponding to a product of the service time and one plus the IO request queue length.

8. The method as claimed in claim 7 , wherein determining the response time includes generating a read response time corresponding to a product of the read IO requests percentage and the read cache hit response time and one minus a read cache hit percentage and the disk response time.

9. The method as claimed in claim 8 , wherein determining the response time includes generating a write response time corresponding to the write cache hit response time.

10. The method as claimed in claim 9 , wherein determining the response time includes producing a product of the write response time and the write IO requests percentage and summing the product with the read response time to produce the response time.

11. The method as claimed in claim 1 , further comprising:

determining initial read and write adjustment factors, wherein the read and write adjustment factors are based on system processor utilization and disk utilization.

12. The method as claimed in claim 11 , further comprising:

determining a metadata IOPS service time; and

based on the IO request queue length and the metadata IOPS service time, determining a metadata IOPS response time.

13. The method as claimed in claim 12 , further comprising:

based on the initial read and write adjustment factors and the metadata IOPS response time, determining final read and write adjustment factors.

14. The method as claimed in claim 13 , further comprising:

adjusting the response time by the final read and write adjustment factors.

15. An apparatus, comprising:

memory; and

processing circuitry coupled to the memory, the memory storing instructions which, when executed by the processing circuitry, cause the processing circuitry to:

define a data storage system being designed;

define a first workload for the data storage system, wherein the first workload includes a first IOPS (input-output operations per second) requirement and respective percentages of read and write IO (input-output) requests, the first workload being defined by at least one of: a simulated real-world workload, historical customer information, default application information, and customer input;

apply the first workload to the data storage system, thus defining a IO request queue length; and

determine a response time for handling an IO request at the data storage system, wherein the said determination is based on the IO request queue length, the respective percentages of read and write IO requests, a service time relating to servicing of an IO request by a data storage device of the data storage system, a read cache hit response time and a write cache hit response time associated with a cache of the data storage system;

wherein the IO request queue length is defined as a numerical value; and

wherein applying the first workload to the data storage system, thus defining a IO request queue length, comprises:

generating a first value corresponding to a ratio of the first IOPS requirement to a total potential IOPS associated with one or more data storage devices of the data storage system; and

determining a second value corresponding to a ratio of the first value to one minus the first value, wherein the second value describes the IQ request queue length.

16. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by processing circuitry, cause the processing circuitry to perform a method, the method comprising:

defining a data storage system being designed;

defining a first workload for the data storage system, wherein the first workload includes a first IOPS (input-output operations per second) requirement and respective percentages of read and write IO (input-output) requests, the first workload being defined by at least one of: a simulated real-world workload, historical customer information, default application information, and customer input;

applying the first workload to the data storage system, thus defining a IO request queue length; and

determining a response time for handling an IO request at the data storage system, wherein the said determination is based on the IO request queue length, the respective percentages of read and write IO requests, a service time relating to servicing of an IO request by a data storage device of the data storage system, a read cache hit response time and a write cache hit response time associated with a cache of the data storage system;

wherein the IO request queue length is defined as a numerical value; and

wherein applying the first workload to the data storage system, thus defining a IO request queue length, comprises:

generating a first value corresponding to a ratio of the first IOPS requirement to a total potential IOPS associated with one or more data storage devices of the data storage system; and

determining a second value corresponding to a ratio of the first value to one minus the first value, wherein the second value describes the IO request queue length.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2017
From: KHOKHAR, MUZHAR S.; REDDY, SHYAM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042126/0884 →
Cited By (2)
US 12,380,079 US 12,455,844