IP Library Granted Patent US 11,520,671
Granted Patent B2
US 11,520,671 · App. 16/775,892 · Granted Dec 6, 2022

Fast multipath failover

Inventors: Ashwin Tidke (Pune, IN); Venkatesh Doddamane Nagaraj (Bangalore, IN); Kurumurthy Gokam (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/2023G06F3/067G06F3/0619G06F3/0653G06F3/0659G06F11/0757
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,520,671
App. No.
16/775,892
Granted
Dec 6, 2022
Kind
B2
Abstract

A host device is configured to obtain a default timeout value of the host device for the submission of an input-output (IO) operation to a storage system and to determine a first timeout value that is less than the default timeout value. The host device is further configured to submit the IO operation to the storage system along a first path using the first timeout value and to determine that the submission of the IO operation along the first path has timed out. The host device is further configured to determine a second timeout value that is greater than the first timeout value and to submit the IO operation to the storage system along a second path using the second timeout value.

Claims (70)

1. An apparatus comprising:

a host device comprising a processor coupled to memory, the host device being configured:

to obtain a default timeout value of the host device for submission of an input-output operation to a storage system;

to determine a first timeout value, the first timeout value being less than the default timeout value;

to submit the input-output operation to the storage system along a first path using the first timeout value;

to determine that the submission of the input-output operation along the first path has timed out based at least in part on the first timeout value;

to determine a second timeout value, the second timeout value being greater than the first timeout value;

to submit the input-output operation to the storage system along a second path using the second timeout value based at least in part on the determination that the submission of the input-output operation along the first path has timed out; and

to resubmit the input-output operation to the storage system along the first path using the default timeout value based at least in part on a determination that the submission of the input-output operation along the first path and the second path have timed out;

wherein at least one of determining a first timeout value and determining a second timeout value comprises selecting a number of attempts to submit the input-output operations along the respective first and second paths; and

wherein the number of attempts is greater than one attempt.

2. The apparatus of claim 1 wherein the second timeout value and the default timeout value are the same.

3. The apparatus of claim 1 wherein the second timeout value is less than the default timeout value.

4. The apparatus of claim 3 wherein the host device is further configured:

to determine that the submission of the input-output operation along the second path has timed out based at least in part on the second timeout value;

to determine a third timeout value, the third timeout value being greater than the second timeout value; and

to submit the input-output operation to the storage system along a third path using the third timeout value based at least in part on the determination that the submission of the input-output operation along the second path has timed out.

5. The apparatus of claim 4 wherein the third timeout value and the default timeout value are the same.

6. The apparatus of claim 1 wherein the default timeout value is specified by one of an operating system of the host device and a hardware bus adapter of the host device.

7. The apparatus of claim 1 wherein determining the first timeout value comprises determining the first timeout value based at least in part on one or more of a determined latency associated with the storage system, a prior number of attempts to submit the input-output operation to the storage system, a recent latency on one or more paths along which the input-output operation may be submitted to the storage system, a size of the input-output operation, one or more recent timeouts on the one or more paths along which the input-output operation may be submitted to the storage system and a number of alive paths along which the input-output operation may be submitted to the storage system.

8. The apparatus of claim 1 wherein the host device is further configured:

to determine an indication of at least one of a storage device of the storage system to which the input-output operation is being submitted, a type of the storage device of the storage system to which the input-output operation is being submitted and an application requesting the submission of the input-output operation to the storage system; and

to obtain a preset timeout value corresponding to the determined indication; and

wherein determining first timeout value comprises determining the first timeout value as the obtained preset timeout value.

9. A method comprising:

obtaining a default timeout value of a host device for submission of an input-output operation to a storage system;

determining a first timeout value, the first timeout value being less than the default timeout value;

submitting the input-output operation to the storage system along a first path using the first timeout value;

determining that the submission of the input-output operation along the first path has timed out based at least in part on the first timeout value;

determining a second timeout value, the second timeout value being greater than the first timeout value;

submitting the input-output operation to the storage system along at least a second path using the second timeout value based at least in part on the determination that the submission of the input-output operation along the first path has timed out; and

resubmitting the input-output operation to the storage system along the first path using the default timeout value based at least in part on a determination that the submission of the input-output operation along the first path and the second path have timed out;

wherein at least one of determining a first timeout value and determining a second timeout value comprises selecting a number of attempts to submit the input-output operations along the respective first and second paths;

wherein the number of attempts is greater than one attempt; and

wherein the method is performed by at least one processor of a host device.

10. The method of claim 9 wherein the second timeout value and the default timeout value are the same.

11. The method of claim 9 wherein the second timeout value is less than the default timeout value.

12. The method of claim 11 wherein the method further comprises:

determining that the submission of the input-output operation along the second path has timed out based at least in part on the second timeout value;

determining a third timeout value, the third timeout value being greater than the second timeout value; and

submitting the input-output operation to the storage system using the third timeout value based at least in part on the determination that the submission of the input-output operation along the second path has timed out.

13. The method of claim 12 wherein the third timeout value and the default timeout value are the same.

14. The method of claim 9 wherein determining the first timeout value comprises determining the first timeout value based at least in part on one or more of a determined latency associated with the storage system, a prior number of attempts to submit the input-output operation to the storage system, a recent latency on one or more paths along which the input-output operation may be submitted to the storage system, a size of the input-output operation, one or more recent timeouts on the one or more paths along which the input-output operation may be submitted to the storage system and a number of alive paths along which the input-output operation may be submitted to the storage system.

15. The method of claim 9 wherein the method further comprises:

determining an indication of at least one of a storage device of the storage system to which the input-output operation is being submitted, a type of the storage device of the storage system to which the input-output operation is being submitted and an application requesting the submission of the input-output operation to the storage system; and

obtaining a preset timeout value corresponding to the determined indication; and

wherein determining first timeout value comprises determining the first timeout value as the obtained preset timeout value.

16. 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 at least one processor of a host device, causes the host device:

to obtain a default timeout value of the host device for submission of an input-output operation to a storage system;

to determine a first timeout value, the first timeout value being less than the default timeout value;

to submit the input-output operation to the storage system along a first path using the first timeout value;

to determine that the submission of the input-output operation along the first path has timed out based at least in part on the first timeout value;

to determine second timeout value, the second timeout value being greater than the first timeout value;

to submit the input-output operation to the storage system along a second path using the second timeout value based at least in part on the determination that the submission of the input-output operation along the first path has timed out; and

to resubmit the input-output operation to the storage system along the first path using the default timeout value based at least in part on a determination that the submission of the input-output operation along the first path and the second path have timed out;

wherein at least one of determining a first timeout value and determining a second timeout value comprises selecting a number of attempts to submit the input-output operations along the respective first and second paths; and

wherein the number of attempts is greater than one attempt.

17. The computer program product of claim 16 wherein the second timeout value and the default timeout value are the same.

18. The computer program product of claim 16

wherein the second timeout value is less than the default timeout value; and

wherein the host device is further configured:

to determine that the submission of the input-output operation along the second path has timed out based at least in part on the second timeout value;

to determine a third timeout value, the third timeout value being greater than the second timeout value; and

to submit the input-output operation to the storage system using the third timeout value based at least in part on the determination that the submission of the input-output operation along the second path has timed out.

19. The computer program product of claim 16 wherein the program code further causes the host device:

to determine an indication of at least one of a storage device of the storage system to which the input-output operation is being submitted, a type of the storage device of the storage system to which the input-output operation is being submitted and an application requesting the submission of the input-output operation to the storage system; and

to obtain a preset timeout value corresponding to the determined indication; and

wherein determining first timeout value comprises determining the first timeout value as the obtained preset timeout value.

20. The apparatus of claim 4 wherein the host device is further configured:

to submit the input-output operation to the storage system along the first path using the default timeout value based at least in part on the determination that the submission of the input-output operation along the third path has timed out.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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 060438/0742 →
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 (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: TIDKE, ASHWIN; NAGARAJ, VENKATESH DODDAMANE; GOKAM, KURUMURTHY
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051660/0772 →