IP Library Granted Patent US 7,739,418
Granted Patent B2
US 7,739,418 · App. 10/823,241 · Granted Jun 15, 2010

Resource management system

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 7,739,418
App. No.
10/823,241
Granted
Jun 15, 2010
Kind
B2
Abstract

A method of managing critical resource usage comprises monitoring queue depth in at least one critical resource queue for a high level of resource consumption and preventing subsequent commands of a client/server combination in response to a command that increases resource consumption to the high level. The method further comprises queuing an identifier of the client/server combination on a waiting queue, removing the client/server combination identifier from the waiting queue in queuing order as resource consumption declines, and enabling commands of the client/server combination.

Claims (81)

1. A method of managing resource usage comprising:

pushing commands indicating accesses of at least one resource onto at least one resource queue;

monitoring queue depth in the at least one resource queue for a predetermined level of resource consumption;

preventing issue of subsequent commands from a client of at least one client to a server of at least one server in response to a command from the client to the server that increases resource consumption to the predetermined level;

identifying the client and the server for which the command increases resource consumption to the predetermined level as a client/server combination identifier;

pushing the client/server combination identifier onto a waiting queue associated with a resource for which the resource consumption is increased to the predetermined level, the waiting queue for queuing a plurality of client/server combination identifiers;

detecting a decline in consumption of a resource of the at least one resource;

popping a client/server combination identifier from a waiting queue associated with the resource for which a decline in consumption is detected in order of queuing; and

re-enabling issue of commands from the client to the server designated by the popped client/server combination identifier.

2. The method according to claim 1 further comprising:

managing resource usage for clients that require a specific resource.

3. The method according to claim 1 further comprising:

enabling issue of commands from a client to a server identified by a client/server combination identifier in order of queuing as resource availability is restored.

4. The method according to claim 1 further comprising:

receiving a command from a client to a server that increases consumption of a resource to a predetermined resource consumption condition;

setting a flag indicative of the predetermined resource condition;

allowing the command to complete; and

rejecting subsequent commands issued by the client to the server.

5. The method according to claim 1 further comprising:

detecting an increase in consumption of a resource to a level above a preselected limit; and

pushing the client/server combination identifier on a waiting queue associated with the resource.

6. The method according to claim 5 further comprising:

detecting a decline in consumption of the resource;

removing a client/server combination identifier from the waiting queue in the queue order; and

enabling subsequent commands from a client to a server identified by the client/server combination identifier removed from the waiting queue for operation.

7. The method according to claim 1 implemented in a storage system further comprising:

at least one storage controller;

at least one host adapter operational as a client;

at least one storage array configured as physical storage and logical storage, the logical storage being arranged in logical units (LUNs) operational as servers;

at least one adapter/LUN combination operational as a client/server combination; and

at least one resource selected from a group consisting of dynamic caching structures, queues, buffers, and remote copy resources.

8. A storage system comprising:

at least one storage controller controlling data transfers between at least one host adapter and at least one storage array configured as physical storage and logical storage, the logical storage being arranged in logical units (LUNs);

at least one resource utilized in the data transfers;

at least one resource queue respectively associated with the at least one resource that queues commands indicating accesses to the associated resource; and

a logic that pushes commands indicating accesses of at least one resource onto at least one resource queue, monitors queue depth in the at least one resource queue for a predetermined resource consumption condition, detects a condition of an adapter that issues a command to a LUN that contributes to the predetermined resource consumption condition, identifying the adapter that issues the command and LUN by an adapter/LUN combination identifier, pushing the adapter/LUN combination identifier on a waiting queue for queuing a plurality of adapter/LUN combination identifiers associated with a resource for which the resource consumption is increased to the predetermined level, and prevents issue of subsequent commands of the identified adapter/LUN combination.

9. The storage system according to claim 8 further comprising:

a logic that detects a decline in resource consumption of a predetermined resource, dequeues the adapter/LUN combination identifier from a waiting queue associated with the predetermined resource for which a decline in consumption is detected, and re-enables commands of the dequeued adapter/LUN combination for operation.

10. The storage system according to claim 8 further comprising:

at least one resource selected from a group consisting of dynamic caching structures, queues, buffers, and remote copy resources.

11. The storage system according to claim 8 further comprising:

a logic that manages resource usage for host adapters that require a specific resource.

12. The storage system according to claim 8 further comprising:

a logic that detects receipt of a command from an adapter to a LUN that increases consumption of a resource above a preselected limit, sets a flag indicative of a predefined condition of the resource, allows the received command to complete, and rejects subsequent commands issued by the adapter to the LUN.

13. The storage system according to claim 8 further comprising:

a logic that detects an increase consumption of a resource above the preselected limit, and queues an adapter/LUN combination identifier on a waiting queue associated with the resource.

14. The storage system according to claim 13 further comprising:

a logic that detects a decline in consumption of the resource, removes an adapter/LUN combination identifier from the waiting queue in the queue order, and enables subsequent commands of the adapter/LUN combination removed from the waiting queue for operation.

15. A data handling system comprising:

at least one controller controlling data transfers between at least one client and at least one server;

at least one resource utilized in the data transfers;

at least one resource queue respectively associated with the at least one resource that queues commands indicating accesses to the associated resource; and

a logic that pushes commands indicating accesses of at least one resource onto at least one resource queue, monitors queue depth in the at least one resource queue for a predetermined resource consumption condition, detects a condition of a source that issues a command to a client that contributes to the predetermined resource consumption condition, identifying the source that issues the command and the client by a client/source combination identifier, pushing the source/client combination identifier on a waiting queue for queuing a plurality of client/server combination identifiers associated with a resource for which the resource consumption is increased to the predetermined level, and prevents issue of subsequent commands of the identified source/client combination.

16. The system according to claim 15 further comprising:

a logic that detects receipt of a command from a client to a server that increases consumption of a resource above a preselected limit, sets a flag indicative of a predefined condition of the resource, allows the received command to complete, and rejects subsequent commands issued by the client to the server.

17. The system according to claim 15 further comprising:

a logic that detects an increase in consumption of a resource above the preselected limit, queues a client/server combination identifier on a waiting queue associated with the resource.

18. The system according to claim 17 further comprising:

a logic that detects a decline in consumption of the resource, removes a client/server combination identifier from the waiting queue in the queue order, and enables subsequent commands of the client/server combination removed from the waiting queue for operation.

19. An article of manufacture comprising:

a non-transitory computer readable medium having a readable program code embodied therein for managing resource usage, the readable program code further comprising:

a code causing a controller to push commands indicating accesses of at least one resource onto at least one resource queue;

a code causing the controller to monitor for a predefined level of resource consumption;

a code causing the controller to prevent issue of subsequent commands from a client of at least one client to a server of at least one server in response to a command from the client to the server that increases resource consumption to the predefined level;

a code causing the controller to identify the client and the server for which the command increases resource consumption to the predetermined level as a client/server combination identifier;

a code causing the controller to push the client/server combination identifier onto a waiting queue associated with a resource for which the resource consumption is increased to the predetermined level, the waiting queue for queuing a plurality of client/server combination identifiers;

a code causing the controller to detect a decline in consumption of a resource of the at least one resource;

a code causing the controller to pop a client/server combination identifier from a waiting queue associated with the resource for which a decline in consumption is detected in order of queuing; and

a code causing the controller to enable issue of commands from the client to the server designated by the popped client/server combination identifier.

20. The article of manufacture according to claim 19 further comprising:

a code causing the controller to manage resource usage for clients that require a specific resource;

a code causing the controller to receive a command from a client to a server that increases consumption of a resource above a preselected limit;

a code causing the controller to set a flag indicative of a condition of the resource;

a code causing the controller to allow the command to complete; and

a code causing the controller to reject subsequent commands issued by the client to the server.

21. The article of manufacture according to claim 19 further comprising:

a code causing the controller to detect an increase in consumption of a resource above a preselected limit;

a code causing the controller to queue a client/server combination identifier on a waiting queue associated with the resource;

a code causing the controller to detect a decline in consumption of the resource;

a code causing the controller to remove a client/server combination identifier from the waiting queue in the queue order; and

a code causing the controller to enable subsequent commands from a client to a server identified by the client/server combination identifier removed from the waiting queue for operation.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME IS MISSPELLED - SHOULD BE SUSAN (NOT SUSASN) PREVIOUSLY RECORDED ON REEL 015030 FRAME 0438. ASSIGNOR(S) HEREBY CONFIRMS THE SUSAN GAYE ELKINGTON. Recorded Aug 21, 2014
From: ELKINGTON, SUSAN GAYE; HESS, RANDALL; WALKER, MICHAEL DEAN; HUDDLESTON, JASON RICHARD
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 033588/0300 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2004
From: ELKINGTON, SUSASN GAYE; HESS, RANDALL; WALKER, MICHAEL DEAN; HUDDLESTON, JASON RICHARD
To: HEWLETT-PACKARD COMPANY DEVELOPMENT COMPANY, L.P.
Reel/Frame 015030/0438 →