IP Library Granted Patent US 9,652,414
Granted Patent B1
US 9,652,414 · App. 15/090,682 · Granted May 16, 2017

Balancing response times for synchronous I/O requests having different priorities

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 9,652,414
App. No.
15/090,682
Granted
May 16, 2017
Kind
B1
Abstract

A computing environment, such as an data mirroring or replication storage system, may need to process synchronous I/O requests having different priorities in addition to handling I/O requests on the basis of synchronous or asynchronous groupings. The system described herein provides a data storage system that addresses issues involving efficient balancing of response times for servicing synchronous I/O requests having different priorities. Accordingly, the system described herein provides for maintaining an optimal response time for the host-synchronous I/O requests and the optimal throughput of non-host-synchronous I/O requests using a host-synchronous request time window within which processing of non-host-synchronous I/O requests is throttled. The host-synchronous request time window may be selected to enable the optimal response time for the host-synchronous I/O and also to minimize the impact on the overall throughput of the I/O processor of the storage device.

Claims (28)

1. A method of balancing response times of a system, comprising:

receiving a first-type synchronous I/O request from a host;

after receiving the first-type synchronous I/O request, initiating a time window having a length of time based on an assessment of an expected likelihood of receiving another first-type synchronous I/O request from the host;

in response to receiving at least one other first-type synchronous I/O request from the host during the time window, processing the at least one other first-type synchronous I/O request; and

in response to determining that at least one subsequent I/O request is a second-type request that is different from the at least one other first-type synchronous I/O request, throttling processing of the second-type request that is different from the at least one other first-type synchronous I/O request received during the time window until after the time window has expired.

2. The method according to claim 1 , wherein throttling the processing of the second-type request includes limiting processing resources available to process the second-type request.

3. The method according to claim 1 , wherein throttling the processing of the second-type request includes limiting generation of the second-type request.

4. The method according to claim 1 , wherein the second-type request is a synchronous I/O request having a different priority than the first-type synchronous I/O request.

5. The method according to claim 1 , wherein determining the length of the time window includes automatically determining the length based on at least one condition.

6. The method according to claim 5 , wherein the at least one condition includes at least one of: a network condition, a time of day, or an I/O request pattern.

7. The method according to claim 1 , wherein the length of the time window is fixed by a user.

8. A non-transitory computer-readable medium storing software for balancing response times of a system, the software comprising:

executable code that receives a first-type synchronous I/O request from a host;

executable code that, after receiving the first-type synchronous I/O request, initiates a time window having a length of time based on an assessment of an expected likelihood of receiving another first-type synchronous I/O request from the host;

executable code that, in response to receiving at least one other first-type synchronous I/O request from the host during the time window, processes the at least one other first-type synchronous I/O request; and

executable code that, in response to determining that at least one subsequent I/O request is a second-type request that is different from the at least one other first-type synchronous I/O request, throttles processing of the second-type request that is different from the at least one other first-type synchronous I/O request received during the time window until after the time window has expired.

9. The non-transitory computer-readable medium according to claim 8 , wherein the executable code that throttles the processing of the second-type request includes executable code that limits processing resources available to process the second-type request.

10. The non-transitory computer-readable medium according to claim 8 , wherein the executable code that throttles the processing of the second-type request includes executable code that limits generation of the second-type request.

11. The non-transitory computer-readable medium according to claim 8 , wherein the second-type request is a synchronous I/O request having a different priority than the host-synchronous I/O request.

12. The non-transitory computer-readable medium according to claim 8 , wherein the executable code that determines the length of the time window includes executable code that automatically determines the length based on at least one condition.

13. The non-transitory computer-readable medium according to claim 12 , wherein the at least one condition includes at least one of: a network condition, a time of day, or an I/O request pattern.

14. The non-transitory computer-readable medium according to claim 8 , wherein the executable code that determines the length of the time window includes executable code that provides an interface that receives input by a user for the length of the time window.

15. A system for balancing response times of a storage system, comprising:

at least one storage device that receives a first-type synchronous I/O request from a host; and

a throttle device that, after receiving the first-type synchronous I/O request, initiates a time window having a length of time based on an assessment of an expected likelihood of receiving another first-type synchronous I/O request from the host, wherein, in response to receiving at least one other first-type synchronous I/O request from the host during the time window, the throttle device enables processing of the at least one other first-type synchronous I/O request by the at least one storage device, and wherein in response to determining that at least one subsequent I/O request is a second-type request that is different from the at least one other first-type synchronous I/O request, the throttle device throttles processing of the second-type request that is different from the at least one other first-type synchronous I/O request received during the time window until after the time window has expired.

16. The system according to claim 1 , further comprising:

at least one remote storage device that is coupled to the at least one storage device and that provides data replication capability.

17. The system according to claim 15 , wherein the second-type request is a synchronous I/O request having a different priority than the first-type synchronous I/O request, and wherein throttling the processing of the second-type request includes at least one of: (i) limiting processing resources available to process the second-type request, or (ii) limiting generation of the second-type request.

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 (043775/0082) 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 060958/0468 →
RELEASE OF SECURITY INTEREST AT REEL 043772 FRAME 0750 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/0606 →
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 (NOTES) Recorded Sep 6, 2017
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 043775/0082 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041652/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2016
From: BHATNAGAR, GAURAV MUKUL; HALSTEAD, MARK J.; VENKATANARAYANAN, PRAKASH; CHANDRASHEKHARA, SANDEEP
To: EMC CORPORATION
Reel/Frame 038189/0714 →