les: fixed minBufLimit limitation

This commit is contained in:
Zsolt Felfoldi 2019-05-08 15:28:16 +02:00
parent 70ddf60b16
commit 120ef63174

View file

@ -184,13 +184,15 @@ func (ct *costTracker) makeCostList(globalFactor float64) RequestCostList {
for code, data := range reqAvgTimeCost {
baseCost := maxCost(data.baseCost, reqMaxInSize[code].baseCost, reqMaxOutSize[code].baseCost)
reqCost := maxCost(data.reqCost, reqMaxInSize[code].reqCost, reqMaxOutSize[code].reqCost)
// always enforce maximum request cost <= minimum buffer limit
if ct.minBufLimit != 0 {
// if minBufLimit is set then always enforce maximum request cost <= minBufLimit
maxCost := baseCost + reqCost*minBufferReqAmount[code]
if maxCost > ct.minBufLimit {
mul := 0.999 * float64(ct.minBufLimit) / float64(maxCost)
baseCost = uint64(float64(baseCost) * mul)
reqCost = uint64(float64(reqCost) * mul)
}
}
list = append(list, requestCostListItem{
MsgCode: code,