IP Library Granted Patent US 10,509,739
Granted Patent B1
US 10,509,739 · App. 15/648,986 · Granted Dec 17, 2019

Optimized read IO for mix read/write scenario by chunking write IOs

Inventors: Krishna Chaitanya Gudipati (Fremont, CA); Anil Ravindranath (Sunnyvale, CA); Rahul Ugale (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G06F13/1626G06F9/3851G06F9/4881G06F9/5038G06F3/0655G06F11/0745G06F2209/506
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,509,739
App. No.
15/648,986
Granted
Dec 17, 2019
Kind
B1
Abstract

In one embodiment, a storage system receives a number of input/output (IO) request transactions at the storage system having multiple storage devices. For each of the plurality of IO request transactions, the system determines a number of child IO requests required to complete the IO request transaction. The system tags the IO request transaction and/or the associated child IO requests with a tag identifier. For each of the child requests that is a write IO request, the system determines an optimal write IO request size, segments the write IO request into a number of sub-IO write requests, each having an optimal request size, and interleaves sub-IO write requests with read IO requests for servicing to avoid impact in performance to read IO requests for a mixed IO workload.

Claims (37)

1. A computer-implemented method to prioritize input/output request transactions for a storage system, the method comprising:

receiving a plurality of input/output (IO) request transactions at the storage system having a plurality of storage devices;

for each of the plurality of IO request transactions, determining a plurality of child IO requests required to complete the IO request transaction;

tagging the IO request transaction and the associated child IO requests with a unique tag identifier;

for each of the child IO requests that is a write IO request, determining an optimal write IO request size by analyzing IO sequences on an IO bus having mixed read and write IO requests at a fixed point in time to determine an optimal write IO request size for that fixed point in time so that the optimal write IO request size can be applied to a subsequent write IO request;

segmenting the write IO request into a plurality of sub-IO write requests, each having an the optimal write IO request size; and

interleaving sub-IO write requests with read IO requests for servicing to avoid impact in performance to the read IO requests for a mixed IO workload.

2. The computer-implemented method of claim 1 , wherein determining an optimal write IO request size comprises dynamically computing an optimal sub-IO write request size during run time to achieve optimal read IO request latency for a mixed IO workload.

3. The computer-implemented method of claim 1 , wherein determining an optimal write IO request size comprises automatically selecting an optimal write IO request size from a predetermined list of write IO request sizes based on a previous read IO request size.

4. The computer-implemented method of claim 1 , wherein interleaving sub-IO write requests with read IO requests comprises interleaving the sub-IO write requests with the read IO requests while maintaining a transaction priority of the IO request transactions.

5. The computer-implemented method of claim 4 , wherein the transaction priority is maintained by servicing sub-IO write requests and pending read IO requests based on an arrival time and a completion rate of the respective IO requests.

6. The computer-implemented method of claim 1 , wherein sub-IO write requests are interleaved by grouping sub-IO write requests with child read IO requests of the associated IO request transaction or child read IO requests of other read IO request transactions to be serviced.

7. A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a plurality of input/output (IO) request transactions at the storage system having a plurality of storage devices;

for each of the plurality of IO request transactions, determining a plurality of child IO requests required to complete the IO request transaction;

tagging the IO request transaction and the associated child IO requests with a unique tag identifier;

for each of the child IO requests that is a write IO request, determining an optimal write IO request size by analyzing IO sequences on an IO bus having mixed read and write IO requests at a fixed point in time to determine an optimal write IO request size for that fixed point in time so that the optimal write IO request size can be applied to a subsequent write IO request;

segmenting the write IO request into a plurality of sub-IO write requests, each having an the optimal write IO request size; and

interleaving sub-IO write requests with read IO requests for servicing to avoid impact in performance to the read IO requests for a mixed IO workload.

8. The non-transitory machine-readable medium of claim 7 , wherein determining an optimal write IO request size comprises dynamically computing an optimal sub-IO write request size during run time to achieve optimal read IO request latency for a mixed IO workload.

9. The non-transitory machine-readable medium of claim 7 , wherein determining an optimal write IO request size comprises automatically selecting an optimal write IO request size from a predetermined list of write IO request sizes based on a previous read IO request size.

10. The non-transitory machine-readable medium of claim 7 , wherein interleaving sub-IO write requests with read IO requests comprises interleaving the sub-IO write requests with the read IO requests while maintaining a transaction priority of the IO request transactions.

11. The non-transitory machine-readable medium of claim 10 , wherein the transaction priority is maintained by servicing sub-IO write requests and pending read IO requests based on an arrival time and a completion rate of the respective IO requests.

12. The non-transitory machine-readable medium of claim 7 , wherein sub-IO write requests are interleaved by grouping sub-IO write requests with child read IO requests of the associated IO request transaction or child read IO requests of other read IO request transactions to be serviced.

13. A data processing system, comprising:

a processor; and

a memory couple to the process to store instructions, which when executed by the processor, cause the processor to perform operations, the operations include receiving a plurality of input/output (IO) request transactions at the storage system having a plurality of storage devices;

for each of the plurality of IO request transactions, determining a plurality of child IO requests required to complete the IO request transaction;

tagging the IO request transaction and the associated child IO requests with a unique tag identifier;

for each of the child IO requests that is a write IO request, determining an optimal write IO request size by analyzing IO sequences on an IO bus having mixed read and write IO requests at a fixed point in time to determine an optimal write IO request size for that fixed point in time so that the optimal write IO request size can be applied to a subsequent write IO request;

segmenting the write IO request into a plurality of sub-IO write requests, each having an the optimal write IO request size; and

interleaving sub-IO write requests with read IO requests for servicing to avoid impact in performance to the read IO requests for a mixed IO workload.

14. The system of claim 13 , wherein determining an optimal write IO request size comprises dynamically computing an optimal sub-IO write request size during run time to achieve optimal read IO request latency for a mixed IO workload.

15. The system of claim 13 , wherein determining an optimal write IO request size comprises automatically selecting an optimal write IO request size from a predetermined list of write IO request sizes based on a previous read IO request size.

16. The system of claim 13 , wherein interleaving sub-IO write requests with read IO requests comprises interleaving the sub-IO write requests with the read IO requests while maintaining a transaction priority of the IO request transactions.

17. The system of claim 16 , wherein the transaction priority is maintained by servicing sub-IO write requests and pending read IO requests based on an arrival time and a completion rate of the respective IO requests.

18. The system of claim 13 , wherein sub-IO write requests are interleaved by grouping sub-IO write requests with child read IO requests of the associated IO request transaction or child read IO requests of other read IO request transactions to be serviced.

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 (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 (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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2017
From: GUDIPATI, KRISHNA CHAITANYA; RAVINDRANATH, ANIL; UGALE, RAHUL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043002/0920 →
Cited By (1)
US 12,561,097