IP Library › Granted Patent US 10,216,654
Granted Patent B1
US 10,216,654 · App. 15/218,239 · Granted Feb 26, 2019

Data service-aware input/output scheduling

Inventors: Junping Zhao (Beijing, CN); Kenneth Durazzo (San Ramon, CA); Ricky Sun (Beijing, CN); Kevin Xu (Warren, NJ)
Assignee: EMC IP Holding Company LLC
G06F13/1642G06F9/30087G06F9/3816G06F13/4059G06F13/161
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,216,654
App. No.
15/218,239
Filed
Jul 25, 2016
Granted
Feb 26, 2019
Kind
B1
Art Unit
2181
USPC
710/112
Abstract

A method of request scheduling in a computing environment comprises the following steps. One or more requests to at least one of read data from and write data to one or more storage devices in the computing environment are obtained from a host device. The one or more requests are aligned corresponding to a segment size for which one or more data services in the computing environment are configured to process data. The one or more aligned requests are dispatched to the one or more data services prior to sending the one or more requests to the one or more storage devices.

Claims (41)

1. A method of request scheduling in a computing environment, comprising:

obtaining a segment size for which one or more data services in the computing environment are configured to process data;

obtaining, from a host device in the computing environment, one or more requests to at least one of read data from and write data to one or more storage devices in the computing environment, wherein the one or more requests originate from one or more application threads of the host device;

aligning the one or more requests into one or more segments having the obtained segment size to generate one or more aligned segments, wherein the one or more requests are respectively provided to one or more local request queues corresponding to the one or more application threads, the one or more local request queues performing request merging, based on the obtained segment size, to generate the one or more aligned segments; and

dispatching the one or more aligned segments to the one or more data services prior to sending the one or more requests to the one or more storage devices;

wherein the computing environment is implemented via one or more processing devices operatively coupled via a communication network.

2. The method of claim 1 , wherein the segment size is specified by the one or more data services.

3. The method of claim 1 , wherein the one or more application threads respectively execute on one or more processing cores of the host device.

4. The method of claim 1 , wherein the aligning step comprises a local stage and a global stage.

5. The method of claim 4 , wherein the local stage further comprises the one or more local request queues corresponding to the one or more application threads.

6. The method of claim 5 , wherein the global stage further comprises a global request queue corresponding to the host device, wherein the global request queue is operatively coupled to the one or more local request queues.

7. The method of claim 6 , wherein the global request queue performs request merging on the requests received from the one or more local request queues based on the obtained segment size for which the one or more data services in the computing environment are configured to process data.

8. The method of claim 6 , wherein each of the one or more local request queues determine if a request is aligned and of sufficient size and, if aligned and of sufficient size, the request is dispatched to the one or more data services without being processed by the global request queue.

9. The method of claim 8 , wherein if the request is aligned but not of sufficient size, the request is provided to the global request queue.

10. The method of claim 8 , wherein if the request is not aligned, the local request queue splits the request into an aligned part and an unaligned part, sends the aligned part to the global request queue, and holds the unaligned part.

11. The method of claim 8 , wherein if the request is not aligned, the local request queue holds the entire request.

12. The method of claim 7 , wherein the global request queue splits a request into an aligned part and an unaligned part, sends the aligned part to the one or more data services, and holds the unaligned part.

13. The method of claim 7 , wherein the global request queue and the one or more local request queues are responsive to a configurable parameter relating to a preferred block segment length.

14. The method of claim 7 , wherein the global request queue and the one or more local request queues are responsive to a configurable parameter relating to a strategy about segment merge and submit operations.

15. The method of claim 7 , wherein the global request queue and the one or more local request queues are responsive to a configurable parameter relating to a merge timeout.

16. The method of claim 7 , wherein the global request queue and the one or more local request queues are responsive to configurable parameter relating to a segment length threshold.

17. The method of claim 1 , wherein the one or more data services comprise one or more of inline data deduplication and inline data compression.

18. A system for request scheduling in a computing environment, the system comprising:

at least one processor, coupled to a memory, and configured to:

obtain a segment size for which one or more data services in the computing environment are configured to process data;

obtain, from a host device in the computing environment, one or more requests to at least one of read data from and write data to one or more storage devices in the computing environment, wherein the one or more requests originate from one or more application threads of the host device;

align the one or more requests into one or more segments having the obtained segment size to generate one or more aligned segments, wherein the one or more requests are respectively provided to one or more local request queues corresponding to the one or more application threads, the one or more local request queues performing request merging, based on the obtained segment size, to generate the one or more aligned segments; and

dispatch the one or more aligned segments to the one or more data services prior to sending the one or more requests to the one or more storage devices.

19. An article of manufacture for request scheduling in a computing environment, the article of manufacture comprising a non-transitory processor-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device implement the steps of:

obtaining a segment size for which one or more data services in the computing environment are configured to process data;

obtaining, from a host device in the computing environment, one or more requests to at least one of read data from and write data to one or more storage devices in the computing environment, wherein the one or more requests originate from one or more application threads of the host device;

aligning the one or more requests into one or more segments having the obtained segment size to generate one or more aligned segments, wherein the one or more requests are respectively provided to one or more local request queues corresponding to the one or more application threads, the one or more local request queues performing request merging, based on the obtained segment size, to generate the one or more aligned segments; and

dispatching the one or more aligned segments to the one or more data services prior to sending the one or more requests to the one or more storage devices.

20. The system of claim 18 , wherein:

the aligning step comprises a local stage and a global stage,

the local stage further comprises the one or more local request queues corresponding to the one or more application threads,

the global stage further comprises a global request queue corresponding to the host device, wherein the global request queue is operatively coupled to the one or more local request queues,

the global request queue is configured to perform request merging on the requests received from the one or more local request queues based on the obtained segment size,

the one or more local request queues are configured to determine if a request is aligned and of sufficient size and, if aligned and of sufficient size, to dispatch the request to the one or more data services without being processed by the global request queue,

wherein if the request is aligned but not of sufficient size, the one or more local request queues are configured to provide the request to the global request queue, and

if the request is not aligned, the one or more local request queues are configured to split the request into an aligned part and an unaligned part, to send the aligned part to the global request queue, and to hold the unaligned part.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
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 Nov 2, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047938/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2016
From: ZHAO, JUNPING; SUN, RICKY; XU, KEVIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040787/0184 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2016
From: DURAZZO, KENNETH
To: EMC CORPORATION
Reel/Frame 040787/0066 →
Cited By (2)
US 12,236,096 US 12,632,176