Skip to content

Commit c2af61f

Browse files
committed
Assymetric treatment of lower and upper bounds considered good
1 parent ccfcab2 commit c2af61f

File tree

1 file changed

+9
-6
lines changed
  • keps/sig-api-machinery/1040-priority-and-fairness

1 file changed

+9
-6
lines changed

keps/sig-api-machinery/1040-priority-and-fairness/README.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -793,12 +793,11 @@ integers.
793793

794794
The priority levels would all be fairly happy if we set CurrentCL =
795795
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`.
799798

800799
```
801-
Target(i) = min( MaxCL(i), max( MinCurrentCL(i), SmoothSeatDemand(i) ))
800+
Target(i) = max( MinCurrentCL(i), SmoothSeatDemand(i) )
802801
```
803802

804803
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`.
810809
Similarly, if `TargetSum > ServerCL` then all the Targets could be
811810
scaled down in the same proportion (if that did not violate any lower
812811
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.
815818

816819
We can not necessarily scale all the Targets by the same factor ---
817820
because that might violate some upper or lower bounds. The problem is

0 commit comments

Comments
 (0)