@@ -793,12 +793,11 @@ integers.
793
793
794
794
The priority levels would all be fairly happy if we set CurrentCL =
795
795
SmoothSeatDemand for each. We clip that by the lower bound just shown
796
- and the configured upper bound. We define ` Target(i) ` as follows and
797
- take it as a first-order target for each non-exempt priority level
798
- ` i ` .
796
+ and define ` Target(i) ` as follows, taking it as a first-order target
797
+ for each non-exempt priority level ` i ` .
799
798
800
799
```
801
- Target(i) = min( MaxCL(i), max( MinCurrentCL(i), SmoothSeatDemand(i) ) )
800
+ Target(i) = max( MinCurrentCL(i), SmoothSeatDemand(i) )
802
801
```
803
802
804
803
Sadly, the sum of the Target values --- let's name that TargetSum ---
@@ -810,8 +809,12 @@ FairProp * Target(i)` for each non-exempt priority level `i`.
810
809
Similarly, if ` TargetSum > ServerCL ` then all the Targets could be
811
810
scaled down in the same proportion (if that did not violate any lower
812
811
bound) to get the new concurrency limits. This shares the wealth or
813
- the pain proportionally among the priority levels. The following
814
- computation generalizes this idea to respect the relevant bounds.
812
+ the pain proportionally among the priority levels (but note: the upper
813
+ bound does not affect the target, lest the pain of not achieving a
814
+ high SmoothSeatDemand be distorted, while the lower bound _ does_
815
+ affect the target, so that merely achieving the lower bound is not
816
+ considered a gain). The following computation generalizes this idea
817
+ to respect the relevant bounds.
815
818
816
819
We can not necessarily scale all the Targets by the same factor ---
817
820
because that might violate some upper or lower bounds. The problem is
0 commit comments