System, method, and computer program product for throttling client traffic
A system for throttling data traffic on a network to a client includes an application node and a throttle manager. The application node receives requests from the client via the network. The throttle manager is in communication with the application node. The throttle manager is configured to track a parameter that is based on a number of active requests associated with a user identifier associated with the client. The throttle manager is configured to determine whether to restrict responses to the requests responsive to a relationship of the parameter to a threshold.
1 . A method of throttling data traffic to a client comprising:
receiving notification of a client request associated with a user identifier;
incrementing a recorded number of active requests for the user identifier;
determining, responsive to the incremented number of active requests, whether a parameter based on the incremented recorded number of active requests is above a threshold; and
determining whether to restrict data traffic to the client responsive to a relationship of the parameter to the threshold.
2 . The method of claim 1 , further comprising sending a message to direct that the user identifier be added to a list of user identifiers to be throttled responsive to the parameter being above the threshold.
3 . The method of claim 1 , further comprising determining whether the user identifier is on a list of user identifiers to be throttled in response to the parameter being below the threshold.
4 . The method of claim 3 , further comprising sending a message to remove the user identifier from the list in response to the user identifier being on the list.
5 . The method of claim 3 , further comprising receiving an indication that a response is being sent to the client in response to the user identifier not being on the list.
6 . The method of claim 5 , further comprising decrementing the recorded number of active requests in response to receipt of the indication.
7 . The method of claim 1 , wherein the parameter is at least one of a number of active requests and a number of active requests per a given unit of time.
8 . The method of claim 8 , further comprising decrementing the recorded number of active requests in response to receipt of a message indicating that data traffic to the client has been restricted.
9 . A computer program product for throttling data traffic to a client, the computer program product comprising at least one computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
a first executable portion capable of receiving notification of a client request from a user identifier;
a second executable portion capable of incrementing a recorded number of active requests for the user identifier;
a third executable portion capable of determining, responsive to the incremented number of active requests, whether a parameter based on the incremented recorded number of active requests is above a threshold; and
a fourth executable portion capable of determining whether to restrict data traffic to the client responsive to a relationship of the parameter to the threshold.
10 . The computer program product of claim 9 , further comprising a fifth executable portion capable of sending a message to direct the user identifier to be added to a list of user identifiers to be throttled responsive to the parameter being above the threshold.
11 . The computer program product of claim 9 , further comprising a fifth executable portion capable of determining whether the user identifier is on a list of user identifiers to be throttled in response to the parameter being below the threshold.
12 . The computer program product of claim 11 , further comprising a sixth executable portion capable of sending a message to remove the user identifier from the list in response to the user identifier being on the list.
13 . The computer program product of claim 11 , further comprising a sixth executable portion capable of receiving an indication that a response is being sent to the client in response to the user identifier not being on the list.
14 . The computer program product of claim 13 , further comprising a seventh executable portion capable of decrementing the recorded number of active requests in response to receipt of the indication.
15 . The computer program product of claim 9 , wherein the parameter is at least one of a number of active requests and a number of active requests per a given unit of time.
16 . A system for throttling data traffic on a network to a client, the system comprising:
an application node receiving requests from the client via the network; and
a throttle manager in communication with the application node, the throttle manager being configured to track a parameter that is based on a number of active requests associated with a user identifier associated with the client,
wherein the throttle manager is configured to determine whether to restrict responses to the requests responsive to a relationship of the parameter to a threshold.
17 . The system of claim 16 , wherein the throttle manager is configured to direct the application node to add the user identifier to a list of user identifiers to be throttled responsive to the parameter being above the threshold.
18 . The system of claim 17 , wherein the application node is configured to send an error message to the client in response to the user identifier being on the list.
19 . The system of claim 16 , wherein the throttle manager is configured to determine whether the user identifier is on a list of user identifiers to be throttled in response to the parameter being below the threshold.
20 . The system of claim 19 , wherein the throttle manager is configured to send a message to the application node directing the application node to remove the user identifier from the list in response to the user identifier being on the list.
21 . The system of claim 19 , wherein the application node is configured to send an indication to the throttle manager indicating that a response is being sent to the client in response to the user identifier not being on the list.
22 . The system of claim 21 , wherein the throttle manager is configured to decrement the recorded number of active requests in response to the indication from the application node.
23 . The system of claim 16 , wherein the parameter is at least one of a number of active requests and a number of active requests per a given unit of time.
24 . A method of throttling data traffic to a client comprising:
receiving a client request associated with a user identifier;
relaying the client request to a throttle manager configured to track a parameter that is based on a number of active requests received from the user identifier;
adding the user identifier to a list of user identifiers to be throttled in response to a first message from the throttle manager;
removing the user identifier from the list in response to a second message from the throttle manager;
providing indication to the throttle manager that a response is sent to the client in response to the user identifier not being on the list; and
restricting data traffic to the client in response to the user identifier being on the list.
25 . The method of claim 24 , further comprising sending an error message to the client in response to the user identifier being on the list.
26 . A computer program product for throttling data traffic to a client, the computer program product comprising at least one computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
a first executable portion capable of receiving a client request associated with a user identifier;
a second executable portion capable of relaying the client request to a throttle manager configured to track a parameter that is based on a number of active requests received from the user identifier;
a third executable portion capable of adding the user identifier to a list of user identifiers to be throttled in response to a first message from the throttle manager;
a fourth executable portion capable of removing the user identifier from the list in response to a second message from the throttle manager;
a fifth executable portion capable of providing indication to the throttle manager that a response is sent to the client in response to the user identifier not being on the list; and
a sixth executable portion capable of restricting data traffic to the client in response to the user identifier being on the list.
27 . The computer program product of claim 26 , further comprising a seventh executable portion capable of sending an error message to the client in response to the user identifier being on the list.
28 . A method of throttling data traffic to a client comprising:
receiving notification of a client request associated with a application resource identifier;
incrementing a recorded number of active requests for the application resource identifier;
determining, responsive to the incremented number of active requests, whether a parameter based on the incremented recorded number of active requests is above a threshold; and
determining whether to restrict data traffic to the client responsive to a relationship of the parameter to the threshold.
29 . The method of claim 28 , further comprising sending a message to direct that the application resource identifier be added to a list of feature addresses to be throttled responsive to the parameter being above the threshold.
30 . The method of claim 28 , wherein the parameter is at least one of a number of active requests and a number of active requests per a given unit of time.
31 . A computer program product for throttling data traffic to a client, the computer program product comprising at least one computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
a first executable portion capable of receiving notification of a client request from a application resource identifier;
a second executable portion capable of incrementing a recorded number of active requests for the application resource identifier;
a third executable portion capable of determining, responsive to the incremented number of active requests, whether a parameter based on the incremented recorded number of active requests is above a threshold; and
a fourth executable portion capable of determining whether to restrict data traffic to the client responsive to a relationship of the parameter to the threshold.
32 . The computer program product of claim 31 , further comprising a fifth executable portion capable of sending a message to direct the application resource identifier to be added to a list of application resource identifiers to be throttled responsive to the parameter being above the threshold.
33 . The computer program product of claim 31 , wherein the parameter is at least one of a number of active requests and a number of active requests per a given unit of time.