Adaptive bandwidth throttling for network services
First Claim
1. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
- store data indicative of a data transmission rate for each of previous server operations;
generate, by averaging the stored data transmission rates, a bandwidth value indicating an average bandwidth used by a server to perform the previous server operations;
receive a request for the server to perform an additional server operation;
compare the bandwidth value to a first threshold and a second threshold; and
restrict the request in a first manner if the bandwidth value exceeds the first threshold but does not exceed the second threshold, and restrict the request in a second manner if the bandwidth value exceeds the second threshold;
wherein to restrict the request in the first manner is to delay the request;
wherein to restrict the request in the second manner is to block the request.
2 Assignments
0 Petitions
Accused Products
Abstract
The adaptive bandwidth throttling system implements a graceful diminution of services to the clients by delaying a first class of services provided by a network server in response to the effective bandwidth utilized by this network server exceeding a first threshold. If the demand for the bandwidth by this network server exceeds a second threshold, the bandwidth throttling system escalates the throttling response and blocks the first class of services from execution and can also concurrently delay execution of a second class of services. The implementation of the throttling process can be varied, to include additional levels of response or finer gradations of the response, to include subsets of a class of services. In addition, the threshold levels of bandwidth used to trigger the throttling response can be selected as desired by the system administrator. Typically, once the effective bandwidth utilization is approximately equal to the allocated bandwidth for the network server, the first level of the hierarchical bandwidth throttling is activated. The second level of the hierarchical bandwidth throttling is activated once the effective bandwidth utilization exceeds the allocated bandwidth for the network server by greater than a predetermined amount.
-
Citations
49 Claims
-
1. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
-
store data indicative of a data transmission rate for each of previous server operations;
generate, by averaging the stored data transmission rates, a bandwidth value indicating an average bandwidth used by a server to perform the previous server operations;
receive a request for the server to perform an additional server operation;
compare the bandwidth value to a first threshold and a second threshold; and
restrict the request in a first manner if the bandwidth value exceeds the first threshold but does not exceed the second threshold, and restrict the request in a second manner if the bandwidth value exceeds the second threshold;
wherein to restrict the request in the first manner is to delay the request;
wherein to restrict the request in the second manner is to block the request. - View Dependent Claims (6, 9, 10, 11, 12)
-
-
2. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
-
generate a bandwidth value indicating an average bandwidth used by a server to perform previous server operations;
receive a request for the server to perform an additional server operation;
compare the bandwidth value to a first threshold and a second threshold; and
restrict the request in a first manner if both the bandwidth value exceeds the first threshold and the additional server operation is of a first type, and restrict the request in a second manner if the bandwidth value exceeds the second threshold;
wherein to restrict the request in the first manner is to delay the request;
wherein to restrict the request in the second manner is to block the request. - View Dependent Claims (3, 4, 5)
-
-
7. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
-
generate a bandwidth value indicating an average bandwidth used by a server to perform previous server operations;
receive a request for the server to perform an additional server operation;
compare the bandwidth value to a threshold;
restrict the request in a first manner if the bandwidth value exceeds the threshold, wherein to restrict the request in the first manner is to delay the request;
compare the bandwidth value to another threshold, wherein the threshold is less than the another threshold; and
restrict the request in a second manner if the bandwidth value exceeds the another threshold, wherein to restrict the request in the second manner is to block the request. - View Dependent Claims (8)
-
-
13. One or more computer-readable media having stored thereon a plurality of instructions that when executed by one or more processors of a computer, cause the one or more processors to:
generate a bandwidth value indicating an average bandwidth used by a server to perform previous server operations by;
generating a value for each of the previous server operations by, identifying a time interval duration between a start time of the previous server operation and an end time of the previous server operation, identifying a number of bytes transferred for the previous server operation, and dividing the number of bytes by the time interval duration; and
dividing a sum of the values of the previous server operations by the number of previous server operations;
receive a request for the server to perform an additional server operation;
compare the bandwidth value to a threshold; and
restrict the request in a first manner if the bandwidth value exceeds the threshold.
-
14. A method comprising:
-
receiving a request to perform a server operation;
storing data indicative of a data transmission rate for each of previous server operations;
generating an average bandwidth by averaging the stored data transmission rates; and
restricting performance of the request based at least in part on the average bandwidth, wherein the restricting comprises;
comparing the average bandwidth to at least one of a first threshold and a second threshold;
restricting the request in a first manner if the average bandwidth exceeds the first threshold but does not exceed the second threshold; and
restricting the request in a second manner if the average bandwidth exceeds the second threshold;
wherein restricting the request in the first manner comprises delaying the request;
wherein restricting the request in the second manner comprises blocking the request. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A host system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request, form a client process, to be performed by one of the at least one network server; and
a bandwidth throttling system, coupled to the asynchronous thread queue, to determine whether performance of the request by the one of the at least one network server is to be restricted in a first manner or a second manner based at least in part on both an average bandwidth used by the one of the at least one network server in performing previous server operations and on a type of the request, wherein the bandwidth throttling system is further to;
store data indicative of a data transmission rate for each of the previous server operations; and
generate the average bandwidth by averaging the stored data transmission rates; and
wherein to restrict the request in the first manner is to delay the request wherein to restrict the request in the second manner is to block the request. - View Dependent Claims (22)
-
-
23. A host system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request from a client process, to be performed by one of the at least one network server; and
a bandwidth throttling system, coupled to the asynchronous thread queue, to determine whether performance of the request by the one of the at least one network server is to be restricted based at least in part on an average bandwidth used by the one of the at least one network server in performing previous operations;
wherein the at least one network server comprises a plurality of network servers, and wherein the bandwidth throttling system determines whether performance of a request by a particular one of the plurality of network servers is to be restricted based on the average bandwidth used by that particular network server in performing previous operations and independent of the average bandwidth used by other network servers of the plurality of network servers in performing previous operations.
-
-
24. A host system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request from a client process to be performed by one of the at least one network server; and
a bandwidth throttling system, coupled to the asynchronous thread queue, to determine whether performance of the request by the one of the at least one network server is to be restricted based at least in part on an average bandwidth used by the one of the at least one network server in performing previous operations;
wherein the bandwidth throttling system comprises;
a measurement subsystem to compute the average bandwidth used by the one of the at least one network server in performing previous operations; and
a control subsystem, coupled to the measurement subsystem, to make the determination and communicate how the asynchronous thread queue is to restrict performance of the request.
-
-
25. A method comprising:
-
storing data indicative of a data transmission rate for each of previous server operations;
generating, by averaging the stored data transmission rates, a value indicating a bandwidth used by a server to perform the previous server operations;
receiving a request for the server to perform an additional server operation; and
restricting the request in a first manner if the additional server operatoin is of a first type and the value exceeds a first threshold but does not exceed a second threshold, and restricting the request in a second manner if the value exceeds the second threshold;
wherein to restrict the request in the first manner is to delay the request;
wherein to restrict the request in the second manner is to block the request. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
26. A method comprising:
-
generating a value indicating a bandwidth used by a server to perform previous server operations;
receiving a request for the server to perform an additional server operation;
restricting the request in a first manner if the value exceeds a first threshold but does not exceed a second threshold, and restricting the request in a second manner if the value exceeds the second threshold;
generating another value indicating bandwidth used by another server to perform other previous server operations;
receiving another request for the another server to perform another additional server operation; and
restricting the other request in the first manner if the value exceeds a third threshold but does not exceed a fourth threshold, and restricting the other request in the second manner if the value exceeds the fourth threshold. - View Dependent Claims (27)
-
-
38. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
-
store data indicative of a data transmission rate for each of previous server operations;
generate, by averaging the stored data transmission rates, a value indicating a bandwidth used by a server to perform previous server operations;
receive a request for the server to perform an additional server operation;
compare the value to at least one of a first threshold and a second threshold;
restrict performance of a request based at least in part on an average bandwidth used in performing said previous server operations; and
delay the request if the value exceeds the first threshold but does not exceed the second threshold, and block the request if the value exceeds the second threshold. - View Dependent Claims (39)
-
-
40. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
-
generate a value indicating a bandwidth used by a server to perform previous server operations by averaging stored data transmission rates indicative of data transmission rates of said previous server operations;
receive a request for the server to perform an additional server operation;
compare the value to at least one of a first threshold and a second threshold;
restrict performance of a requested based at least in part on an average bandwidth used in performing said previous server operations; and
delay the request only if the request is of a first type and if the value exceeds the first threshold but does not exceed the second threshold, and block the request only if the request is of the first type and if the value exceeds the second threshold. - View Dependent Claims (41, 42, 43)
-
-
44. A host system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request from a client process, to be performed by one of the at least one network server; and
a bandwidth throttling system, coupled to the asynchronous thread queue, to compare a value indicating a bandwidth used by the one of the at least one network server to perform previous server operations to at least one of a first threshold and a second threshold, to restrict the request in a first manner if the value exceeds the first threshold but does not exceed the second threshold, and to restrict the request in a second manner if the value exceeds the second threshold;
wherein the bandwidth throttling system is further to;
store data indicative of a data transmission rate for each of the previous server operations; and
generate the value by averaging the stored data transmission rates.
-
-
45. A host system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request, from a client process, to be performed by one of the at least one network server; and
a bandwidth throttling system, coupled to the asynchronous thread queue, to compare a value indicating a bandwidth used by the one of the at least one network server to perform previous server operations to at least one of a first threshold and a second threshold to restrict the request in a first manner if the value exceeds the first threshold but does not exceed the second threshold, and to restrict the request in a second manner if the value exceeds the second threshold;
further comprising a plurality of network server, and wherein the bandwidth throttling system determines whether to restrict a request for a particular one of the plurality of network servers based on the value indicating bandwidth used by that particular network server in performing the previous server operations and independent of bandwidth used by other network servers of the plurality of network servers in performing the previous server operations.
-
-
46. A host system comprising:
-
at least one network server;
an asynchronous thread queue to receive a request from a client process, to be performed by one of the at least one network server; and
a bandwidth throttling system, coupled to the asynchronous thread queue, to compare a value indicating a bandwidth used by the one of the at least one network server to perform previous server operations to at least one of a first threshold and a second threshold, to restrict the request in a first manner if the value exceeds the first threshold but does not exceed the second threshold, and to restrict the request in a second manner if the value exceeds the second threshold;
wherein the bandwidth throttling system comprises;
a measurement subsystem to compute, as the value, an average bandwidth used by the network server in performing the previous server operations; and
a control subsystem, coupled to the measurement subsystem, to make the determination and communicate how the asynchronous thread queue is to restrict performance of the request.
-
-
47. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
determine a presently used bandwidth for each of at least one network server by way of a data transmission rate measurement during execution of an operation for each of said at least one network server that includes;
storing data indicative of said data transmission rate measurement of said operation for n last most recently executed operations for each of said at least one network server, wherein n is a positive integer greater than 2, and generating data indicative of an effective presently used bandwidth for each of said at least one network server wherein said effective presently used bandwidth includes an average of said data transmission rate measurement over said n last most recently executed operations;
effect provision of a plurality of classes of service provided by one of said at least one network server in a first manner, in response to said effective presently used bandwidth for said one of said at least one network server that exceeds a first threshold; and
effect provision of said plurality of classes of service provided by said one of said at least one network server in a second manner that differs from said first manner, in response to said effective presently used bandwidth for said one of said at least one network server that exceeds a second threshold that is greater than said first threshold.
-
48. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
-
store data indicative of a predetermined allocated data transmission bandwidth for each of a plurality of network servers, each of said plurality of network servers providing a plurality of classes of service;
determine an effective bandwidth for each of said plurality of network servers, comprising;
calculating a bandwidth for each operation performed by each of said plurality of network servers, tabulating a count of bandwidth used by each of said plurality of network servers in each of a plurality of last time intervals, and averaging said tabulated count of bandwidth to obtain a value indicative of said effective bandwidth;
delay, in response to said effective bandwidth for a one of said network servers substantially corresponding to said predetermined allocated data transmission bandwidth for said one network server, for delaying a first subset of said plurality of classes of service provided by said one network server; and
reject, in response to said effective bandwidth for said one network server exceeding said predetermined allocated data transmission bandwidth for said one network server, request for said first subset of classes of service provided by said one network server and for delaying service for a second subset of said plurality of classes of service provided by said one network server.
-
-
49. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
determine a presently used bandwidth for each of a plurality of network servers by way of a data transmission rate measurement taken during execution of an operation for each of said plurality of network servers, said determining including;
storing data indicative of a predetermined allocated data transmission bandwidth for each of said plurality of network servers, and storing data indicative of a first threshold, wherein said first threshold includes an indication of a different from said predetermined allocated data transmission bandwidth for each of said plurality of network servers; and
effect provision of a plurality of classes of service provided by a first one of said plurality of network servers in a manner that is individually defined for a plurality of successively greater thresholds in response to said effective presently used bandwidth of said first one of said plurality of network servers exceeding one of said plurality of successively greater thresholds, wherein said manner defined for said first one of said plurality of network servers differs from every other manner defined for other ones of said plurality of network servers.
Specification