IP Library Granted Patent US 10,474,367
Granted Patent B1
US 10,474,367 · App. 15/849,828 · Granted Nov 12, 2019

Storage system with input-output performance control utilizing application process detection

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,474,367
App. No.
15/849,828
Granted
Nov 12, 2019
Kind
B1
Abstract

A storage array in one embodiment is configured to communicate over one or more networks with a plurality of host devices. The storage array is further configured to detect process tags assigned to respective input-output operations by a given one of the host devices, the process tags being of at least first and second distinct types so as to distinguish at least respective first and second distinct processes generating corresponding ones of the input-output operations on the given host device. Responsive to a particular one of the detected process tags being of the first type, the storage array provides a first level of priority for processing of the corresponding input-output operation, and responsive to a particular one of the detected process tags being of the second type, the storage array provides a second level of priority different than the first level of priority for processing of the corresponding input-output operation.

Claims (42)

1. A storage system comprising:

at least one storage array comprising a plurality of storage devices;

the storage array being configured to communicate over one or more networks with a plurality of host devices;

wherein the storage array is further configured:

to detect process tags assigned to respective input-output operations by a given one of the host devices, the process tags being of at least first and second distinct types so as to distinguish at least respective first and second distinct processes generating corresponding ones of the input-output operations on the given host device, the first and second distinct processes being part of at least one application running on the given host device;

responsive to a particular one of the detected process tags being of the first type, providing a first level of priority for processing of the corresponding input-output operation; and

responsive to a particular one of the detected process tags being of the second type, providing a second level of priority different than the first level of priority for processing of the corresponding input-output operation;

the storage array thereby being configured to provide different levels of priority for processing different ones of the input-output operations generated by different ones of the processes responsive to the process tags assigned to the respective input-output operations by the given host device.

2. The storage system of claim 1 wherein the process tags are assigned to the respective input-output operations by a multi-path input-output driver of the given host device.

3. The storage system of claim 2 wherein the process tags are assigned to the respective input-output operations in a kernel-space portion of the multi-path input-output driver of the given host device.

4. The storage system of claim 1 wherein the storage array comprises a plurality of priority queues having respective different priority levels and wherein the storage array is configured to provide different priority levels for different ones of the input-output operations by assigning different ones of the input-output operations to different ones of the priority queues based at least in part on their respective detected process tags.

5. The storage system of claim 4 wherein respective ones of the plurality of queues are associated with respective distinct service level objectives for processing of input-output operations in the storage array.

6. The storage system of claim 1 wherein the first and second processes comprise respective log and database processes of a database application and wherein input-output operations generated by the log process of the database application are provided with a higher priority level for processing in the storage array than input-output operations generated by the database process of the database application.

7. The storage system of claim 1 wherein the storage array is configured to direct one or more input-output operations having detected process tags of the first type and one or more input-output operations having detected process tags of the second type to storage devices having a same device type but from different priority queues.

8. The storage system of claim 1 wherein the storage array is configured to store a process name table providing a mapping between a plurality of process names and their respective process tags.

9. The storage system of claim 8 wherein the given host device is configured to read the process name table from the storage array.

10. The storage system of claim 9 wherein the given host device is configured to read the process name table from the storage array in conjunction with a boot process of the given host device.

11. The storage system of claim 1 wherein the process tags are assigned to respective ones of the input-output operations by incorporating the process tags into respective command descriptor blocks of corresponding commands directed from the given host device to the storage array.

12. The storage system of claim 11 wherein at least a portion of a given one of the process tags for one of the input-output operations is incorporated into at least one of:

a group number field of the command descriptor block of the corresponding command; and

a vendor unique field of the command descriptor block of the corresponding command.

13. The storage system of claim 11 wherein the corresponding commands directed from the given host device to the storage array comprise respective SCSI commands.

14. The storage system of claim 1 wherein the storage array is configured to provide a plurality of priority levels for respective ones of a plurality of distinct processes based at least in part on their respective process tags, including in order of decreasing priority:

a first priority level for write operations of a log process of a database application;

a second priority level for read operations of the log process of the database application;

a third priority level for read operations of a database process of the database application; and

a fourth priority level for write operations of a database process of the database application.

15. A method comprising:

configuring a storage array comprising a plurality of storage devices to communicate over one or more networks with a plurality of host devices;

detecting in the storage array process tags assigned to respective input-output operations by a given one of the host devices, the process tags being of at least first and second distinct types so as to distinguish at least respective first and second distinct processes generating corresponding ones of the input-output operations on the given host device, the first and second distinct processes being part of at least one application running on the given host device;

responsive to a particular one of the detected process tags being of the first type, providing in the storage array a first level of priority for processing of the corresponding input-output operation; and

responsive to a particular one of the detected process tags being of the second type, providing in the storage array a second level of priority different than the first level of priority for processing of the corresponding input-output operation;

the storage array thereby providing different levels of priority for processing different ones of the input-output operations generated by different ones of the processes responsive to the process tags assigned to the respective input-output operations by the given host device.

16. The method of claim 15 wherein the process tags are assigned to the respective input-output operations by a multi-path input-output driver of the given host device.

17. The method of claim 15 wherein the storage array comprises a plurality of priority queues having respective different priority levels and wherein the storage array is configured to provide different priority levels for different ones of the input-output operations by assigning different ones of the input-output operations to different ones of the priority queues based at least in part on their respective detected process tags.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by a storage array comprising a plurality of storage devices, the storage array being configured to communicate over one or more networks with a plurality of host devices, causes the storage array:

to detect process tags assigned to respective input-output operations by a given one of the host devices, the process tags being of at least first and second distinct types so as to distinguish at least respective first and second distinct processes generating corresponding ones of the input-output operations on the given host device, the first and second distinct processes being part of at least one application running on the given host device;

responsive to a particular one of the detected process tags being of the first type, to provide a first level of priority for processing of the corresponding input-output operation; and

responsive to a particular one of the detected process tags being of the second type, to provide a second level of priority different than the first level of priority for processing of the corresponding input-output operation;

the storage array thereby providing different levels of priority for processing different ones of the input-output operations generated by different ones of the processes responsive to the process tags assigned to the respective input-output operations by the given host device.

19. The computer program product of claim 18 wherein the process tags are assigned to the respective input-output operations by a multi-path input-output driver of the given host device.

20. The computer program product of claim 18 wherein the storage array comprises a plurality of priority queues having respective different priority levels and wherein the storage array is configured to provide different priority levels for different ones of the input-output operations by assigning different ones of the input-output operations to different ones of the priority queues based at least in part on their respective detected process tags.

Assignments (7)
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 (045482/0131) Recorded May 20, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 061749/0924 →
RELEASE OF SECURITY INTEREST AT REEL 045482 FRAME 0395 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0314 →
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 AGREEMENT (NOTES) Recorded Mar 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 045482/0131 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Mar 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 045482/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2017
From: MALLICK, SANJIB; NUTHAKKI, KRISHNA DEEPAK; RAO, VINAY; DON, ARIEH; PUSALKAR, MANEESH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044458/0079 →
Cited By (2)
US 12,561,419 US 12,568,040