IP Library Granted Patent US 10,732,895
Granted Patent B2
US 10,732,895 · App. 15/927,500 · Granted Aug 4, 2020

Drive-level internal quality of service

Inventors: Tod Earhart (Longmont, CO); David Christopher Pruett (Longmont, CA)
Assignee: Burlywood, Inc.
G06F3/0659G06F3/0604G06F3/0611G06F3/0613G06F3/0631G06F3/0653G06F3/0679
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,732,895
App. No.
15/927,500
Granted
Aug 4, 2020
Kind
B2
Abstract

A storage controller is provided. The storage controller includes a host interface, a drive interface, and a quality of service control module coupled with the host interface and the drive interface. The QoS module includes read and write queues for each data stream, each queue associated with corresponding token buckets, and an arbiter, configured to receive requests from the read and write queues, and to service the read and write queues in an order at least partially determined by a quantity of tokens in each token bucket. The QoS module also includes a quality of service measurement module, configured to measure quality of service levels for each of the read and write queues, and a bandwidth allocation manager, configured to allocate tokens to each token bucket at a rate corresponding to the service level agreements and the measured quality of service level for each of the read and write queues.

Claims (41)

1. A method of operating a storage controller within a storage system comprising a single storage controller, configured to receive and transmit multiple data streams, each data stream having a corresponding service level agreement measured by a corresponding quality of service, the method comprising:

receiving requests from multiple read and write queues corresponding to the multiple data streams, each queue associated with a corresponding token bucket;

servicing the requests from the read and write queues in an order at least partially determined by a quantity of tokens in each token bucket;

measuring quality of service levels for each of the read and write queues; and

allocating tokens to each token bucket at a rate corresponding to the service level agreements and the measured quality of service for each of the read and write queues.

2. The method of claim 1 , wherein a maximum quantity of tokens allowed in each token bucket is determined in part by a corresponding service level agreement.

3. The method of claim 1 , the method further comprising:

receiving requests from internal process queues; and

servicing the internal process queues along with the read and write queues.

4. The method of claim 3 , wherein the internal process queues have a guaranteed percentage of all available bandwidth.

5. The method of claim 1 , the method further comprising:

determining an amount of time required for each request; and

servicing the request only if the quantity of tokens in the corresponding token bucket is sufficient to fulfill the request.

6. The method of claim 1 , the method further comprising:

receiving a request for a new data stream;

responsive to the request for a new data stream, determining an amount of available bandwidth; and

establishing the new data stream only if the bandwidth required by the new data stream is less than the amount of available bandwidth.

7. The method of claim 1 , wherein each data stream corresponds to a partition in the storage media.

8. The method of claim 1 , the method further comprising:

adjusting the rate tokens are allocated to each token bucket in response to the measured quality of service for each of the read and write queues.

9. The method of claim 1 , wherein the quality of service includes read bandwidth, read latency, write bandwidth, and write latency requirements.

10. The method of claim 1 , the method further comprising:

issuing warnings when service levels any of the read and write queues fail to meet corresponding quality of service requirements.

11. A storage system comprising a single storage controller, the storage controller comprising:

a host interface, configured to receive and transmit multiple data streams, each data stream having a corresponding service level agreement measured by a corresponding quality of service;

a drive interface, configured to transmit the data streams to storage media; and

a quality of service control module coupled with the host interface and the drive interface, including:

a read queue for each of the data streams, each read queue associated with a corresponding token bucket;

a write queue for each of the data streams, each write queue associated with a corresponding token bucket;

an arbiter, configured to receive requests from the read and write queues, and to service the read and write queues in an order at least partially determined by a quantity of tokens in each token bucket;

a quality of service measurement module, configured to measure quality of service levels for each of the read and write queues; and

a bandwidth allocation manager, configured to allocate tokens to each token bucket at a rate corresponding to the service level agreements and the measured quality of service for each of the read and write queues.

12. The storage system of claim 11 , wherein a maximum quantity of tokens allowed in each token bucket is determined in part by a corresponding service level agreement.

13. The storage system of claim 11 , wherein the arbiter is further configured to receive requests from internal process queues and to service the internal process queues along with the read and write queues.

14. The storage system of claim 13 , wherein the internal process queues have a guaranteed percentage of all available bandwidth.

15. The storage system of claim 11 , wherein the arbiter is further configured to determine an amount of time required for each request, and to service the request only if the quantity of tokens in the corresponding token bucket is sufficient to fulfill the request.

16. The storage system of claim 11 , wherein the quality of service control module further includes a dynamic quality of service control module configured to receive a request for a new data stream, and responsive to the request for a new data stream, determine an amount of available bandwidth, and establish the new data stream only if the bandwidth required by the new data stream is less than the amount of available bandwidth.

17. The storage system of claim 11 , wherein each data stream corresponds to a partition in the storage media.

18. The storage system of claim 11 , wherein the bandwidth allocation manager is further configured to adjust the rate tokens are allocated to each token bucket in response to the measured quality of service for each of the read and write queues.

19. The storage system of claim 11 , wherein the quality of service includes read bandwidth, read latency, write bandwidth, and write latency requirements.

20. The storage system of claim 11 , wherein the quality of service measurement module is further configured to issue warnings when service levels any of the read and write queues fail to meet corresponding quality of service requirements.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2025
From: INNOVATIVE SSD IP, LLC
To: BIP BY DDN, INC.
Reel/Frame 070844/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2025
From: JONES, MICHAEL
To: INNOVATIVE SSD IP, LLC
Reel/Frame 070582/0446 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER 10719389 TO PATENT NUMBER 10719389 PREVIOUSLY RECORDED AT REEL: 065954 FRAME: 0911. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 27, 2023
From: BURLYWOOD, INC.
To: JONES, MICHAEL
Reel/Frame 066132/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: BURLYWOOD, INC.
To: JONES, MICHAEL
Reel/Frame 065954/0911 →
CHANGE OF NAME Recorded Jul 21, 2020
From: BURLYWOOD, LLC
To: BURLYWOOD, INC.
Reel/Frame 053267/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2018
From: EARHART, TOD; PRUETT, DAVID CHRISTOPHER
To: BURLYWOOD, LLC
Reel/Frame 045303/0771 →
Continuity (2)
Provisional Application 62474718 · Mar 22, 2017
Related Publication 20180275923A1 · Sep 27, 2018
Cited By (1)
US 12,554,658