IP Library Granted Patent US 10,496,333
Granted Patent B2
US 10,496,333 · App. 15/883,287 · Granted Dec 3, 2019

System and method for end to end QoS solution for data storage systems

Inventors: Lifeng Yang (Beijing, CN); Xinlei Xu (Beijing, CN); Changyu Feng (Beijing, CN); Liam Xiongcheng Li (Beijing, CN); Ruiyong Jia (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/061G06F3/0604G06F3/067G06F3/0689H04L67/1097
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,496,333
App. No.
15/883,287
Filed
Jan 30, 2018
Granted
Dec 3, 2019
Kind
B2
Art Unit
2185
USPC
710/6
Abstract

A method, computer program product, and computer system for receiving, by a computing device, an I/O request, wherein the I/O request may include host I/O priority information. It may be determined that the I/O request is associated with a token bucket of a plurality of token buckets based upon, at least in part, the host I/O priority information. If the token bucket of the plurality of token buckets has sufficient tokens for the I/O request, the I/O request may be sent down a block stack for processing, and if the token bucket of the plurality of token buckets has insufficient tokens for the I/O request, the I/O request may be rejected.

Claims (30)

1. A computer-implemented method comprising:

receiving, by a computing device, an I/O request, wherein the I/O request includes host I/O priority information;

determining that the I/O request is associated with a token bucket of a plurality of token buckets based upon, at least in part, the host I/O priority information; and

if the token bucket of the plurality of token buckets has sufficient tokens for the I/O request:

sending the I/O request down a block stack for processing, wherein sending the I/O request down the block stack for processing includes placing the I/O into a priority queue of a plurality of priority queues in a multi-core cache portion of the block stack, wherein the priority queue is weighted based upon the host I/O priority information of the I/O request, and

sending the I/O request for placement into a second priority queue of a second plurality of priority queues in a multi-core RAID portion of the block stack, wherein the second priority queue is weighted based upon the host I/O priority information of the I/O request; and

if the token bucket of the plurality of token buckets has insufficient tokens for the I/O request, rejecting the I/O request.

2. The computer-implemented method of claim 1 wherein the priority information is sent from host side.

3. The computer-implemented method of claim 1 wherein the priority information is encapsulated into a common protocol driver structure.

4. The computer-implemented method of claim 1 further comprising adding a token to each token bucket of the plurality of token buckets at a different rate, wherein the different rate is based upon, at least in part, a respective priority level assigned to the plurality of token buckets.

5. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising:

receiving an I/O request, wherein the I/O request includes host I/O priority information;

determining that the I/O request is associated with a token bucket of a plurality of token buckets based upon, at least in part, the host I/O priority information; and

if the token bucket of the plurality of token buckets has sufficient tokens for the I/O request;

sending the I/O request down a block stack for processing, wherein sending the I/O request down the block stack for processing includes placing the I/O into a priority queue of a plurality of priority queues in a multi-core cache portion of the block stack, wherein the priority queue is weighted based upon the host I/O priority information of the I/O request, and

sending the I/O request for placement into a second priority queue of a second plurality of priority queues in a multi-core RAID portion of the block stack, wherein the second priority queue is weighted based upon the host I/O priority information of the I/O request; and

if the token bucket of the plurality of token buckets has insufficient tokens for the I/O request, rejecting the I/O request.

6. The computer program product of claim 5 wherein the priority information is sent from host side.

7. The computer program product of claim 5 wherein the priority information is encapsulated into a common protocol driver structure.

8. The computer program product of claim 5 wherein the operations further comprise adding a token to each token bucket of the plurality of token buckets at a different rate, wherein the different rate is based upon, at least in part, a respective priority level assigned to the plurality of token buckets.

9. A computing system including one or more processors and one or more memories configured to perform operations comprising:

receiving an I/O request, wherein the I/O request includes host I/O priority information;

determining that the I/O request is associated with a token bucket of a plurality of token buckets based upon, at least in part, the host I/O priority information; and

if the token bucket of the plurality of token buckets has sufficient tokens for the I/O request;

sending the I/O request down a block stack for processing, wherein sending the I/O request down the block stack for processing includes placing the I/O into a priority queue of a plurality of priority queues in a multi-core cache portion of the block stack, wherein the priority queue is weighted based upon the host I/O priority information of the I/O request, and

sending the I/O request for placement into a second priority queue of a second plurality of priority queues in a multi-core RAID portion of the block stack, wherein the second priority queue is weighted based upon the host I/O priority information of the I/O request; and

if the token bucket of the plurality of token buckets has insufficient tokens for the I/O request, rejecting the I/O request.

10. The computing system of claim 9 wherein the priority information is sent from host side.

11. The computing system of claim 9 wherein the priority information is encapsulated into a common protocol driver structure.

12. The computing system of claim 9 wherein the operations further comprise adding a token to each token bucket of the plurality of token buckets at a different rate, wherein the different rate is based upon, at least in part, a respective priority level assigned to the plurality of token buckets.

Assignments (6)
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 →
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 Jan 30, 2018
From: YANG, LIFENG; XU, XINLEI; FENG, CHANGYU; LI, LIAM XIONGCHENG; JIA, RUIYONG
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 044765/0833 →
Priority Claims (1)
CN 2017 1 1026814 · Oct 27, 2017 · national
Continuity (1)
Related Publication 20190129653A1 · May 2, 2019
Cited By (3)
US 12,189,984 US 12,265,850 US 12,405,826