Technique for throttling data access requests
First Claim
Patent Images
1. A method for reducing issuance of data access requests to a storage system from clients of the storage system, comprising:
- configuring a first group of clients with a first predetermined number of queues that may be utilized by the clients in the first group, the predetermined number hereinafter a throttle value, and a second group of clients with a second throttle value;
receiving, by the storage system, a data access request from a client of the first group;
determining that execution of the received data access request will cause the throttle value of the first group of clients to be exceeded;
determining if the client of the first group may use an available queue from the second group of clients, where the second group of clients has not exceeded its throttle value;
sending, if the client of the first group may not use the available queue from the second group, a queue full message to the client of the first group; and
reducing, in response to the queue full message, issuance of the data access requests from the first group to the storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for throttling data access rates through data containers prevents starvation of storage system resources by active clients. A SCSI throttle module of a storage operating system of storage system determines if the number of outstanding access requests associated with the client or initiator group exceeds a preset throttle value.
237 Citations
40 Claims
-
1. A method for reducing issuance of data access requests to a storage system from clients of the storage system, comprising:
-
configuring a first group of clients with a first predetermined number of queues that may be utilized by the clients in the first group, the predetermined number hereinafter a throttle value, and a second group of clients with a second throttle value; receiving, by the storage system, a data access request from a client of the first group; determining that execution of the received data access request will cause the throttle value of the first group of clients to be exceeded; determining if the client of the first group may use an available queue from the second group of clients, where the second group of clients has not exceeded its throttle value; sending, if the client of the first group may not use the available queue from the second group, a queue full message to the client of the first group; and reducing, in response to the queue full message, issuance of the data access requests from the first group to the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A storage system for reducing issuance of data access requests to the storage system from the clients of the storage system, comprising:
-
means for configuring a first group of clients with a first predetermined number of queues that may be utilized by the clients in the first group, the predetermined number hereinafter a throttle value, and a second group of clients with a second throttle value; means for receiving, by the storage system, a data access request from a client of the first group; means for determining that execution of the received data access request will cause throttle value of the first group of clients to be exceeded; means for determining if the client of the first group may use an available queue from the second group of clients, where the second group of clients has not exceeded its throttle value; means for sending, if the client of the first group may not use the available queue from the second group, a queue full message to the client of the first group; and means for reducing, in response to the queue full message, issuance of the data access requests from the first group to the storage system. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A storage system for reducing issuance of data access requests from clients, comprising:
-
the storage system having a target module adapted to interpret data access requests from one or more clients; a throttle module adapted to determine that a number of data access requests will exceed a predetermined throttle value of pending data access requests for the one or more clients; the throttle module further adapted to determine if the one or more client may use an available queue from another client that has not exceeded its predetermined throttle value; and in response to the determination that no queue from the another client is available, the throttle module further adapted to reduce issuance of the data access requests from the one or more clients. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer readable media, comprising:
-
said computer readable media containing instructions for execution on a processor for the practice of a method for reducing issuance of data access requests to a storage system, the method having, configuring a first group of clients with a first predetermined number of queues that may be utilized by the clients in the first group, the predetermined number hereinafter a throttle value, and a second group of clients with a second throttle value; receiving, by the storage system, a data access request from a client of the first group; determining that execution of the received data access request will cause the throttle value of the first group of clients to be exceeded; determining if the client of the first group may use an available queue from the second group of clients, where the second group of clients another client that has not exceeded its throttle value; sending, if the client of the first group may not use the available queue from the second group, a queue full message to the client of the first group; and reducing, in response to the queue full message, issuance of the data access requests from the first group to the storage system.
-
-
29. A method for reducing issuance of data access requests to a storage system from a plurality of clients of the storage system, comprising:
-
receiving one or more data access requests from the plurality of clients; associating a plurality of queues with a first initiator group; determining if the received data access requests causes a number of data access requests to exceed a predetermined throttle value associated with the first initiator group; in response to determining that the number of data access requests exceeds the throttle value associated with the first initiator group, (i) determining if any queues are available from another initiator group; (ii) borrowing the available queues from the another initiator group; and (iii) performing the data access requests using the available queues. - View Dependent Claims (30, 31, 32)
-
-
33. A method for reducing issuance of data access requests to a storage system from a plurality of clients of the storage system, comprising:
-
receiving one or more data access requests from a first plurality of clients; associating a first plurality of queues with a first initiator group; associating a second plurality of queues with a second initiator group; determining if the received data access requests from the first plurality of clients causes a number of data access requests to exceed a predetermined throttle value associated with the first initiator group; in response to determining that the number of data access requests exceeds the throttle value associated with the first initiator group, (i) determining if any queues are available from the second initiator group; (ii) borrowing the available queues from the second plurality of queues for use with the first plurality of queues associated with the first initiator group; and (iii) performing the data access requests using the second plurality of available queues. - View Dependent Claims (34, 35, 36)
-
-
37. A method for reducing issuance of data access requests to a storage system from a plurality of clients of the storage system, comprising:
-
receiving one or more data access requests from the plurality of clients; associating a plurality of queues with a first initiator group; determining if the received data access requests causes a number of data access requests to exceed a predetermined throttle value associated with the first initiator group; in response to determining that the number of data access requests exceeds the throttle value associated with the first initiator group, (i) determining if a borrowing flag is set; (ii) determining if any queues are available from another initiator group; (iii) borrowing the available queues from the another initiator group; and (iv) performing the data access requests using the available queues. - View Dependent Claims (38)
-
-
39. A method for reducing issuance of data access requests to a storage system from clients of the storage system, comprising:
-
configuring a first group of clients with a first predetermined number of queues that may be utilized by the clients in the first group, the predetermined number hereinafter a throttle value; configuring a second group of clients with a second throttle value; determining that execution of a next data access request sent from the first client group will cause the first throttle value of the first group of clients to be exceeded; and reducing issuance of the data access requests, if the first group of clients may not use a queue from the second group of clients to execute the next data access request. - View Dependent Claims (40)
-
Specification