IP Library Granted Patent US 11,762,583
Granted Patent B2
US 11,762,583 · App. 17/077,060 · Granted Sep 19, 2023

System and method for selectively throttling commands within a storage system

Inventors: Kenneth Hill (Milford, MA); Stephen Henderson (Groton, MA); Daniel B. Lewis (Auburndale, MA); Michael P. Wahl (Bulverde, TX)
Assignee: EMC IP Holding Company, LLC
G06F3/0659G06F3/0608G06F3/0626G06F3/0673
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 11,762,583
App. No.
17/077,060
Granted
Sep 19, 2023
Kind
B2
Abstract

A method, computer program product, and computing system for receiving, at a storage system, a command from a host. A command type of the command may be determined. It may be determined if a threshold associated with the command type has been met. In response to determining that the threshold associated with the command type has been met, a command queue full response may be sent, from the storage system, to the host.

Claims (46)

1. A computer-implemented method, executed on a computing device, comprising:

receiving, at a storage system, a plurality of commands sent from a host;

determining a command type for each of the plurality of commands;

determining, for each command, if a threshold associated with the command type has been met;

in response to determining that the threshold associated with the command type has been met, sending, from the storage system, a command queue full response to the host for each command of the command type that has met the associated threshold, wherein the host is configured to respond to the command queue full response by throttling sending of subsequent commands to the storage system, wherein throttling includes:

determining a threshold number of command queue full responses have been received, and

throttling an attempted command queue depth of commands to send from the host; and

processing the plurality of commands of command types that have not met the associated threshold.

2. The computer-implemented method of claim 1 , wherein determining if a threshold associated with the command type has been met includes one or more of:

determining if at least a threshold amount of memory for commands for the command type has been met; and

determining if at least a threshold number of commands for the command type are being processed.

3. The computer-implemented method of claim 2 , wherein determining if at least a threshold number of commands for the command type are being processed includes:

incrementing a number of commands being processed for the command type for each command received; and

comparing the number of commands being processed for the command type to the threshold number of commands for the command type.

4. The computer-implemented method of claim 1 , wherein the plurality of commands received from the host include one or more commands of the Small Computer System Interface (SCSI) storage protocol.

5. The computer-implemented method of claim 4 , wherein the command type includes a SCSI unmap command.

6. The computer-implemented method of claim 4 , wherein the command queue full response is a SCSI queue full response.

7. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

receiving, at a storage system, a plurality of commands sent from a host;

determining a command type for each of the plurality of commands;

determining, for each command, if a threshold associated with the command type has been met;

in response to determining that the threshold associated with the command type has been met, sending, from the storage system, a command queue full response to the host for each command of the command type that has met the associated threshold, wherein the host is configured to respond to the command queue full response by throttling sending of subsequent commands to the storage system, wherein throttling includes:

determining a threshold number of command queue full responses have been received, and

throttling an attempted command queue depth of commands to send from the host; and

processing the plurality of commands of command types that have not met the associated threshold.

8. The computer program product of claim 7 , wherein determining if a threshold associated with the command type has been met includes one or more of:

determining if at least a threshold amount of memory for commands for the command type has been met; and

determining if at least a threshold number of commands for the command type are being processed.

9. The computer program product of claim 8 , wherein determining if at least a threshold number of commands for the command type are being processed includes:

incrementing a number of commands being processed for the command type for each command received; and

comparing the number of commands being processed for the command type to the threshold number of commands for the command type.

10. The computer program product of claim 7 , wherein the plurality of commands received from the host include one or more commands of the Small Computer System Interface (SCSI) storage protocol.

11. The computer program product of claim 10 , wherein the command type includes a SCSI unmap command.

12. The computer program product of claim 10 , wherein the command queue full response is a SCSI queue full response.

13. A computing system comprising:

a memory; and

a processor configured to receive, at a storage system, a plurality of commands sent from a host, wherein the processor is further configured to determine a command type for each of the plurality of commands, wherein the processor is further configured to determine, for each command, if a threshold associated with the command type has been met, wherein the processor is further configured to, in response to determining that the threshold associated with the command type has been met, sending, from the storage system, a command queue full response to the host for each command of the command type that has met the associated threshold, wherein the host is configured to respond to the command queue full response by throttling sending of subsequent commands to the storage system, wherein throttling includes: determining a threshold number of command queue full responses have been received, and throttling an attempted command queue depth of command to send from the host, and wherein the processor is further configured to process the plurality of commands of command types that have not met the associated threshold.

14. The computing system of claim 13 , wherein determining if a threshold associated with the command type has been met includes one or more of:

determining if at least a threshold amount of memory for commands for the command type has been met; and

determining if at least a threshold number of commands for the command type are being processed.

15. The computing system of claim 14 , wherein determining if at least a threshold number of commands for the command type are being processed includes:

incrementing a number of commands being processed for the command type for each command received; and

comparing the number of commands being processed for the command type to the threshold number of commands for the command type.

16. The computing system of claim 13 , wherein the plurality of commands received from the host include one or more commands of the Small Computer System Interface (SCSI) storage protocol.

17. The computing system of claim 16 , wherein the command type includes a SCSI unmap command.

18. The computing system of claim 16 , wherein the command queue full response is a SCSI queue full response.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2020
From: HILL, KENNETH; HENDERSON, STEPHEN; LEWIS, DANIEL B.; WAHL, MICHAEL P.
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 054136/0146 →
Cited By (1)
US 12,436,905