Method and apparatus for controlling utilization in a horizontally scaled software application
First Claim
1. A method of controlling a utilization of a software application by an individual client, wherein the application is implemented as a number of peer application instances that receive application traffic from any one or more clients in a plurality of clients and wherein the method at each application instance comprises:
- classifying the application traffic incoming to the application instance into flows corresponding to different ones of the clients and/or different types of application traffic;
estimating a local demand value for each flow with respect to the application instance;
exchanging local demand information with one or more other ones of the application instances, including sending the local demand values estimated for the flows at the application instance and receiving like estimated local demand values for all like flows at other ones of the application instances;
determining a global demand value for each flow with respect to the application, based on the exchanged local demand information;
calculating a local utilization limit for each flow as a function of the global demand value determined for the flow;
marking the application traffic in each flow as being out-of-policy traffic or as being in-policy traffic, in dependence on whether or not the local utilization limit for the flow is exceeded;
determining whether an aggregation of the application traffic for all flows at the application instance exceeds a local aggregated utilization limit; and
controlling a buffering of the aggregated application traffic toward the application instance on a per-flow and/or aggregated flow basis, based on whether the local aggregated utilization limit is exceeded and distinguishing between in-policy and out-of-policy traffic.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention comprises an apparatus and method for distributed traffic control in a horizontally scaled application, in which a software-based application is implemented as a number of peer application instances that each provide a portion of the application'"'"'s overall capability or capacity. An apparatus that includes a distributed traffic controller is instantiated or otherwise implemented at each application instance, and these apparatuses collectively operate to limit the overall utilization of the application by individual clients or affiliated groups of clients according to, e.g., Service Level Agreements or SLAs, and further operate to prevent disproportionate utilization of any one of the application instances. Advantageously, such operations are accomplished according to the teachings herein using efficient information propagation protocols between the distributed traffic controllers.
-
Citations
20 Claims
-
1. A method of controlling a utilization of a software application by an individual client, wherein the application is implemented as a number of peer application instances that receive application traffic from any one or more clients in a plurality of clients and wherein the method at each application instance comprises:
-
classifying the application traffic incoming to the application instance into flows corresponding to different ones of the clients and/or different types of application traffic; estimating a local demand value for each flow with respect to the application instance; exchanging local demand information with one or more other ones of the application instances, including sending the local demand values estimated for the flows at the application instance and receiving like estimated local demand values for all like flows at other ones of the application instances; determining a global demand value for each flow with respect to the application, based on the exchanged local demand information; calculating a local utilization limit for each flow as a function of the global demand value determined for the flow; marking the application traffic in each flow as being out-of-policy traffic or as being in-policy traffic, in dependence on whether or not the local utilization limit for the flow is exceeded; determining whether an aggregation of the application traffic for all flows at the application instance exceeds a local aggregated utilization limit; and controlling a buffering of the aggregated application traffic toward the application instance on a per-flow and/or aggregated flow basis, based on whether the local aggregated utilization limit is exceeded and distinguishing between in-policy and out-of-policy traffic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for controlling a utilization of a software application by an individual client, wherein the application is implemented as a number of peer application instances that receive application traffic from any one or more clients among a plurality of clients and wherein the apparatus is implemented at each application instance and comprises processing circuitry and an associated memory storing computer program instructions that, when executed by the processing circuitry, configure the processing circuitry as:
-
a distributed traffic controller configured to classify the application traffic incoming to the application instance into flows corresponding to different ones of the clients and/or different types of application traffic and estimate a local demand value for each flow with respect to the application instance; and a communication controller configured to exchange local demand information with one or more other ones of the application instances, including sending the local demand values estimated at the application instance for the flows at the application instance and receiving like estimated local demand values for all like flows at the other application instances; and wherein said distributed traffic controller is further configured to; determine a global demand value for each flow with respect to the application, based on the exchanged local demand information; calculate a local utilization limit for each flow as a function of the global demand value determined for the flow; mark the application traffic in each flow as being out-of-policy traffic or as being in-policy traffic, in dependence on whether or not the local utilization limit for the flow is exceeded; determine whether an aggregation of the application traffic of all the flows at the application instance exceeds a local aggregated utilization limit; and control a buffering of the aggregated application traffic toward the application instance on a per-flow and/or aggregated flow basis, based on whether the local aggregated utilization limit is exceeded and distinguishing between in-policy and out-of-policy traffic. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification