IP Library › Granted Patent US 10,481,805
Granted Patent B1
US 10,481,805 · App. 14/788,346 · Granted Nov 19, 2019

Preventing I/O request timeouts for cloud-based storage systems

Inventors: Adnan Sahin (Needham Heights, MA); Wayne D'Entremont (Attleboro, MA); Suresh Krishnan (Shrewsbury, MA); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0619G06F3/067G06F3/0665G06F3/0689
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,481,805
App. No.
14/788,346
Filed
Jun 30, 2015
Granted
Nov 19, 2019
Kind
B1
Art Unit
2135
USPC
711/114
Abstract

Preventing timeouts of I/O requests at a data storage system that are associated with cloud-based and/or external data storage systems. Rather than allow a timeout to occur, a response is sent to the host at a predetermined time before timeout, which will prevent the timeout from occurring and may cause the host system to “retry” the I/O operation by issuing another I/O request specifying the same I/O operation. The data storage system may repeat this process a preconfigured number of times or indefinitely, or until the host or user terminates or the application crashes. An I/O request received from a host may be configured in accordance with one or more SAN- or NAS-based protocols, and the I/O request may be translated into an I/O request conforming to one or more cloud-based and/or Internet-based protocols and transmitted to a cloud-based and/or external storage system.

Claims (54)

1. A method comprising:

receiving, at a first data storage system, a first I/O request, the first I/O request originating from a host system and specifying an I/O operation to perform on first data, and having an associated first timeout period, the first I/O request avoiding a requirement for performance in a strict queuing order;

determining that the I/O operation is for a second data storage system that is a cloud-based or external storage system;

determining whether the I/O operation has been satisfied within a first predetermined amount of time, wherein the first predetermined amount of time is less than the first timeout period, prior to the expiration of the first timeout period;

if it is determined that the I/O operation has not been satisfied within the first predetermined amount of time prior to the expiration of the first timeout period, sending to the host system a first response to the first I/O request that will prevent the first I/O request from timing out.

2. The method of claim 1 , further comprising:

in response to determining that the I/O operation is for a second storage location, sending a second I/O request to the second data storage system, the second I/O request specifying the I/O operation to perform on the first data,

wherein the act of determining whether the I/O operation has been satisfied comprises, determining whether the second I/O request has been satisfied by the first predetermined amount of time prior to the expiration of the first timeout period.

3. The method of claim 2 , wherein the second data storage system is a cloud-based storage system, and

wherein the first I/O request and first response are transmitted in accordance with a SAN-based or NAS-based storage protocol, and the second I/O request is transmitted in accordance with a cloud-based storage protocol.

4. The method of claim 2 , further comprising:

receiving the second I/O request at the first data storage system, the second I/O request having an associated second timeout period;

determining whether the I/O operation has been satisfied by a second predetermined amount of time, wherein the second predetermined amount of time is less than the second timeout period, prior to the expiration of the second timeout period;

if it is determined that the I/O operation has not been satisfied by a predetermined amount of time prior to the expiration of the timeout period, sending to the host system a second response to the second I/O request that will prevent the second I/O request from timing out.

5. The method of claim 1 , wherein the first data storage system includes a cache for external and/or cloud-based storage systems, wherein the method further comprises an act of, in response to determining that the storage location is within a second data storage system, determining whether a second I/O request to the second data storage system can be cached in the cache, the second I/O request specifying the I/O operation to perform on the first data, and

wherein the act of determining whether the I/O operation has been satisfied comprises determining whether the second I/O request has been added to the cache by the first predetermined amount of time prior to the expiration of the first timeout period.

6. The method of claim 1 , wherein the first response is configured to send a second I/O request to the first storage system specifying the I/O operation to perform on the first data.

7. The method of claim 1 , further comprising:

determining that the I/O operation has been satisfied by the first predetermined amount of time prior to the expiration of the first timeout period; and

in response to determining that the I/O operation has been satisfied, sending a second response to the host, system in satisfaction of the first I/O request.

8. The method of claim 1 , wherein the I/O operation is a read operation.

9. A non-transitory computer-readable storage medium having computer-executable instructions stored thereon that, as a result of being executed by a computer, control the computer to perform, for a system comprising a plurality of physical storage devices, a method comprising acts of:

receiving, at a first data storage system, a first I/O request originating from a host system and specifying an I/O operation to perform on first data, and having an associated first timeout period, the first I/O request avoiding a requirement for performance in a strict queuing order;

determining that the I/O operation is for a second data storage system that is a cloud-based or external storage system;

determining whether the I/O operation has been satisfied within a first predetermined amount of time, wherein the first predetermined amount of time is less than the first timeout period, prior to the expiration of the first timeout period;

if it is determined that the I/O operation has not been satisfied within the first predetermined amount of time prior to the expiration of the first timeout period, sending to the host system a first response to the first I/O request that will prevent the first I/O request from timing out.

10. The computer-readable storage medium of claim 9 , the method further comprising:

in response to determining that the I/O operation is for a second storage location, sending a second I/O request to the second data storage system, sending a second I/O request to the second data storage system, the second I/O, request specifying the I/O operation to perform on the first data,

wherein the act of determining whether the I/O operation has been satisfied comprises determining whether the second I/O request has been satisfied by the first predetermined amount of time prior to the expiration of the first timeout period.

11. The computer-readable storage medium of claim 10 , wherein the second data storage system is a cloud-based storage system, and

wherein the first I/O request and first response are transmitted in accordance with a SAN-based or NAS-based storage protocol, and the second I/O request is transmitted in accordance with a cloud-based storage protocol.

12. The computer-readable storage medium of claim 10 , further comprising: receiving the second I/O request at the first data storage system, the second I/O request having an associated second timeout period:

determining whether the I/O operation has been satisfied by a second predetermined amount of time, wherein the second predetermined amount of time is less than the second timeout period, prior to the expiration of the second timeout period;

if it is determined that the I/O operation has not been satisfied by the second predetermined amount of time prior to the expiration of the timeout period, sending to the host system a second response to the second I/O request that will prevent the second I/O request from timing out.

13. The computer-readable storage medium of claim 9 , wherein the first data storage system includes a cache for external and/or cloud-based storage systems, wherein the method further comprises an act of, in response to determining that the storage location is within a second data storage system, determining whether a second I/O request to the second data storage system can be cached in the cache, the second I/O request specifying the I/O operation to perform on the first data, and

wherein the act of determining whether the I/O operation has been satisfied comprises determining whether the second I/O request has been added to the cache by the first predetermined amount of time prior to the expiration of the first timeout period.

14. The computer-readable storage medium of claim 9 , wherein the first response is configured to cause the host system to send a second I/O request to the first storage system specifying the I/O operation to perform on the first data.

15. The computer-readable storage medium of claim 9 , wherein the method further comprises: determining that the I/O operation has been satisfied by the first predetermined amount of time prior to the expiration of the first timeout period; and

in response to determining that the I/O operation has been satisfied, sending a second response to the host system in satisfaction of the first I/O request.

16. The computer-readable storage medium of claim 9 , wherein the I/O operation is a read operation.

17. A first data storage system comprising:

a host adapter to receive a first I/O request originating from a host system and specifying an I/O operation to perform on first data, and having an associated first timeout period, the first I/O request avoiding a requirement for performance in a strict queuing order;

first logic to determine determining that the I/O operation is for a second data storage system that is a cloud-based or external storage system;

second logic to determine determining whether the I/O operation has been satisfied within a first predetermined amount of time, wherein the first predetermined amount of time is less than the first timeout period, prior to the expiration of the first timeout period;

third logic to send to the host system, if it is determined that the I/O operation has not been satisfied within the first predetermined amount of time prior to the expiration of the first timeout period, sending to the host system a first response to the first I/O request that will prevent the first I/O request from timing out.

18. The system of claim 17 , further comprising:

fourth logic to send a second I/O request to the second data storage system in response to determining that the I/O operation is for a second storage location, sending a second I/O request to the second data storage system, the second I/O request specifying the I/O operation to perform on the first data,

wherein the second logic act of determining whether the I/O operation has been satisfied comprises logic to determine determining whether the second I/O request has been satisfied by the first predetermined amount of time prior to the expiration of the first timeout period.

19. The system of claim 18 , wherein the second data storage system is a cloud-based storage system, and

wherein the first I/O request and first response are transmitted in accordance with a SAN-based or NAS-based storage protocol, and the second I/O request is transmitted in accordance with a cloud-based storage protocol.

20. The system of claim 18 , further comprising:

fourth logic to receive receiving the second I/O request at the first data storage system, the second I/O request having an associated second timeout period;

fifth logic to determine determining whether the I/O operation has been satisfied by a second predetermined amount of time, wherein the second predetermined amount of time is less than the second timeout period, prior to the expiration of the second timeout period; and

sixth logic to send to the host system, if it is determined that the I/O operation has not been satisfied by the second predetermined amount of time prior to the expiration of the timeout period, sending to the host system a second response to the second I/O request that will prevent the second I/O request from timing out.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2015
From: SAHIN, ADNAN; D'ENTREMONT, WAYNE; KRISHNAN, SURESH; DON, ARIEH
To: EMC CORPORATION
Reel/Frame 035958/0943 →
Cited By (3)
US 12,210,454 US 12,493,409 US 12,632,185