IP Library Granted Patent US 10,757,189
Granted Patent B2
US 10,757,189 · App. 15/966,112 · Granted Aug 25, 2020

Service level objection based input-output selection utilizing multi-path layer of host device

Inventors: Sanjib Mallick (Bangalore, IN); Vinay G. Rao (Bangalore, IN); Maneesh Pusalkar (Pune, IN); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
H04L67/1097H04L41/50H04L43/08
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,757,189
App. No.
15/966,112
Granted
Aug 25, 2020
Kind
B2
Abstract

An apparatus in one embodiment comprises a host device that includes a set of input-output (IO) queues and a multi-path input-output (MPIO) driver that selects IO operations from the set of IO queues for delivery to a storage system over a network. The MPIO driver determines service level objectives (SLOs) for respective sources of the IO operations, determines latencies of storage devices of the storage system, assigns an initial time-to-become-urgent (TTBU) value to each of at least a subset of the IO operations based at least in part on the SLO of its source and one or more of the determined latencies, adjusts at least a subset of the TTBU values based at least in part on amounts of time spent by the corresponding IO operations in the set of IO queues, and selects IO operations from the set of IO queues for delivery to the storage system based at least in part on their respective TTBU values as adjusted.

Claims (42)

1. An apparatus comprising:

a host device configured to communicate over a network with a storage system;

the host device comprising:

a set of input-output queues; and

a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network;

wherein the multi-path input-output driver is further configured:

to determine service level objectives for respective sources of the input-output operations;

to determine latencies of storage devices of the storage system;

to assign an initial time-to-become-urgent value to each of at least a subset of the input-output operations based at least in part on the service level objective of the source of the input-output operation and one or more of the determined latencies;

to adjust at least a subset of the time-to-become-urgent values based at least in part on amounts of time spent by the corresponding input-output operations in the set of input-output queues; and

to select input-output operations from the set of input-output queues for delivery to the storage system based at least in part on the respective time-to-become-urgent values as adjusted.

2. The apparatus of claim 1 further comprising one or more additional host devices each configured to communicate over the network with the storage system and wherein each additional host device comprises a set of input-output queues and a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network.

3. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to determine the service level objectives for respective sources of the input-output operations based at least in part on corresponding service level objective information read by the multi-path input-output driver from the storage system.

4. The apparatus of claim 1 wherein the multi-path input-output driver of the host device in determining latencies of the storage devices is configured to determine a current latency for a given one of the storage devices based at least in part on an average response time of the given storage device to input-output operations delivered to the given storage device over a designated period of time.

5. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to compute initial time-to-become-urgent values for assignment to respective ones of the input-output operations by decrementing an average response time from an expected response time of a service level objective of the source of each input-output operation to obtain as the time-to-become-urgent value for that input-output operation an amount of time that the input-output operation can remain in the set of input-output queues without adversely impacting expected response time of the input-output operation.

6. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to adjust at least a subset of the time-to-become-urgent values based at least in part on amounts of time spent by the corresponding input-output operations in the set of input-output queues by periodically decrementing each of the time-to-become-urgent values in accordance with an elapsed time spent by that input-output operation in the set of input-output queues since assignment of the initial time-to-become-urgent value to the input-output operation.

7. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to select input-output operations from the set of input-output queues for delivery to the storage system in order of increasing time-to-become-urgent values such that input-output operations having smaller time-to-become-urgent values are selected before other input-output operations having larger time-to-become-urgent values.

8. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to assign initial time-to-become-urgent values of zero to respective ones of the input-output operations having a highest priority level so as to ensure that any such input-output operations are selected for delivery to the storage system prior to other input-output operations having non-zero time-to-become-urgent values.

9. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to hold in the set of input-output queues one or more input-output operations having time-to-become-urgent values that are greater than a threshold multiple of an average response time of a corresponding one of the storage devices.

10. The apparatus of claim 9 wherein the threshold multiple is about 1.5 times the average response time of the corresponding one of the storage devices.

11. The apparatus of claim 1 wherein the sources of the input-output operations include respective processes of one or more applications executing on the host device.

12. The apparatus of claim 11 wherein the processes comprise respective synchronous and asynchronous processes of an application and wherein input-output operations generated by the synchronous process of the application are assigned lower initial time-to-become-urgent values by the multi-path input-output driver than input-output operations generated by the asynchronous process of the application.

13. The apparatus of claim 11 wherein the 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 assigned lower initial time-to-become-urgent values by the multi-path input-output driver than input-output operations generated by the database process of the database application.

14. The apparatus of claim 1 wherein the multi-path input-output driver of the host device is configured to select one of a plurality of available paths for delivery of selected input-output operations to a given one of the storage devices based at least in part on average response times of respective ones of the paths to the given storage device and the time-to-become-urgent values.

15. A method comprising:

configuring a multi-path input-output driver of a host device to select input-output operations from a set of input-output queues of the host device for delivery to a storage system over a network;

wherein the multi-path input-output driver in conjunction with selecting the input-output operations performs the following steps:

determining service level objectives for respective sources of the input-output operations;

determining latencies of storage devices of the storage system;

assigning an initial time-to-become-urgent value to each of at least a subset of the input-output operations based at least in part on the service level objective of the source of the input-output operation and one or more of the determined latencies;

adjusting at least a subset of the time-to-become-urgent values based at least in part on amounts of time spent by the corresponding input-output operations in the set of input-output queues; and

selecting input-output operations from the set of input-output queues for delivery to the storage system based at least in part on the respective time-to-become-urgent values as adjusted.

16. The method of claim 15 wherein the multi-path input-output driver of the host device is configured to determine the service level objectives for respective sources of the input-output operations based at least in part on corresponding service level objective information read by the multi-path input-output driver from the storage system.

17. The method of claim 15 wherein the multi-path input-output driver of the host device in determining latencies of the storage devices is configured to determine a current latency for a given one of the storage devices based at least in part on an average response time of the given storage device to input-output operations delivered to the given storage device over a designated period of time.

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 host device comprising a multi-path input-output driver and a set of input-output queues, the host device being configured to communicate over a network with a storage system, causes the multi-path input-output driver:

to determine service level objectives for respective sources of input-output operations;

to determine latencies of storage devices of the storage system;

to assign an initial time-to-become-urgent value to each of at least a subset of the input-output operations based at least in part on the service level objective of the source of the input-output operation and one or more of the determined latencies;

to adjust at least a subset of the time-to-become-urgent values based at least in part on amounts of time spent by the corresponding input-output operations in the set of input-output queues; and

to select input-output operations from the set of input-output queues for delivery to the storage system based at least in part on the respective time-to-become-urgent values as adjusted.

19. The computer program product of claim 18 wherein the multi-path input-output driver of the host device is configured to determine the service level objectives for respective sources of the input-output operations based at least in part on corresponding service level objective information read by the multi-path input-output driver from the storage system.

20. The computer program product of claim 18 wherein the multi-path input-output driver of the host device in determining latencies of the storage devices is configured to determine a current latency for a given one of the storage devices based at least in part on an average response time of the given storage device to input-output operations delivered to the given storage device over a designated period of time.

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 (046366/0014) 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
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
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 AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2018
From: MALLICK, SANJIB; RAO, VINAY G.; PUSALKAR, MANEESH; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045666/0154 →