Shared rate limiting
AssigneeGoogle Inc.
InventorsAbdul Kabbani, Amin Vahdat
Life of this patent
Estimating the term…
Abstract
A system includes a plurality of rate limiters and a rate limiter management module. The rate limiter management module causes a processor to analyze and compare a plurality of flows each having at least one aggregation attribute, to aggregate a first group of the plurality of flows into a first aggregate flow based on the at least one aggregation attribute, and to assign the first aggregate flow to a rate limiter having at least one membership criterion. The first aggregate flow includes flows having the at least one aggregation attribute that satisfies the at least one membership criterion.
Claims7
A computer-implemented system for managing computer network traffic through a network switch, the system comprising:
- a plurality of rate limiters each having a plurality of flows assigned thereto, the plurality of flows assigned to each rate limiter forming respective aggregate flows, wherein:
- for every rate limiter, the flows assigned to the respective rate limiter have respective flow rates that have a common order of magnitude, or
- for every rate limiter, the flows assigned to the respective rate limiter have respective flow rates that fall within a common percentile of the flow rates of all flows traversing the switch;
- and
- a memory storing computer executable instructions implementing a rate limiter manager module, which when executed by a processor causes the processor to:
- receive a new flow traversing the switch, the new flow having a flow rate;
- identify a first rate limiter of the plurality of rate limiters such that the flow rate of the new flow falls within the common order of magnitude of the flow rates of the flows assigned to the first rate limiter or the flow rate of the new flow falls within the common percentile of flow rates of the flows assigned to the first rate limiter;
- assign the new flow to the first rate limiter, thereby adding the new flow to the aggregate flow corresponding to the first rate limiter;
- and
- increase an aggregate rate limit of the first rate limiter based on the flow rate of the new flow.
A method for managing computer network traffic through a network switch, the method comprising:
- providing a plurality of rate limiters each having a plurality of flows assigned thereto, the plurality of flows assigned to each rate limiter forming respective aggregate flows wherein:
- for every rate limiter, the flows assigned to the respective rate limiter have respective flow rates that have a common order of magnitude, or
- for every rate limiter, the flows assigned to the respective rate limiter have respective flow rates that fall within a common percentile of the flow rates of all flows traversing the switch;
- receiving a new flow traversing the switch, the new flow having a flow rate;
- identifying a first rate limiter of the plurality of rate limiters such that the flow rate of the new flow falls within the common order of magnitude of the flow rates of the flows assigned to the first rate limiter or the flow rate of the new flow falls within the common percentile of flow rates of the flows assigned to the first rate limiter;
- assigning the new flow to the first rate limiter, thereby adding the new flow to the aggregate flow corresponding to the first rate limiter;
- and
- increasing an aggregate rate limit of the first rate limiter based on the flow rate of the new flow.
A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
- providing a plurality of rate limiters each having a plurality of flows assigned thereto, the plurality of flows assigned to each rate limiter forming respective aggregate flows, wherein:
- for every rate limiter, the flows assigned to the respective rate limiter have respective flow rates that have a common order of magnitude, or
- for every rate limiter, the flows assigned to the respective rate limiter have respective flow rates that fall within a common percentile of the flow rates of all flows traversing the switch;
- receiving a new flow traversing the switch, the new flow having a flow rate;
- identifying a first rate limiter of the plurality of rate limiters such that the flow rate of the new flow falls within the common order of magnitude of the flow rates of the flows assigned to the first rate limiter or the new flow falls within the common percentile of flow rates of the flows assigned to the first rate limiter;
- assigning the new flow to the first rate limiter, thereby adding the new flow to the aggregate flow corresponding to the first rate limiter;
- and
- increasing an aggregate rate limit of the first rate limiter based on the flow rate of the new flow.
A computer-implemented system for managing computer network traffic through a network switch, the system comprising:
- a plurality of rate limiters each having a plurality of flows assigned thereto, the plurality of flows assigned to each rate limiter forming respective aggregate flows, wherein the plurality of flows assigned to each rate limiter have respective flow rates that have a common order of magnitude or fall within a common tranche of the flow rates of all flows traversing the switch, and wherein each of the rate limiters is configured to limit the rate of its respective aggregate flow to be less than an aggregate rate of the plurality of flows in the aggregate flow;
- and
- a memory storing computer executable instructions implementing a rate limiter manager module, which when executed by a processor causes the processor to:
- receive a new flow traversing the switch, the new flow having a flow rate;
- identify a first rate limiter of the plurality of rate limiters such that the flow rate of the new flow falls within the common order of magnitude of the flow rates of the plurality of flows assigned to the first rate limiter or the new flow falls within the common tranche of flow rates of the plurality of flows assigned to the first rate limiter;
- assign the new flow to the first rate limiter, thereby adding the new flow to the aggregate flow corresponding to the first rate limiter;
- and
- increase an aggregate rate limit of the first rate limiter based on the flow rate of the new flow.
Dependencies are inferred from the claim text.