Anton Kalashnikov created FLINK-24690:
-----------------------------------------

             Summary: Clarification of buffer size threshold calculation in 
BufferDebloater 
                 Key: FLINK-24690
                 URL: https://issues.apache.org/jira/browse/FLINK-24690
             Project: Flink
          Issue Type: Bug
          Components: Runtime / Network
    Affects Versions: 1.14.0
            Reporter: Anton Kalashnikov


It looks like that the variable `skipUpdate` in 
BufferDebloater#recalculateBufferSize is calculated in a not obvious way.

For example if 
`taskmanager.network.memory.buffer-debloat.threshold-percentages` is set to 
50(means 50%) then it will be something like:
 * 32000 -> 16000(possible)
 * 32000 -> 17000(not possible)
 * 16000 -> 24000(not possible) - but 16000 + 50%  = 24000
 * 16000 -> 32000(only this possible)

This happens because the algorithm takes into account only the largest value. 
So in example of `16000 -> 24000` it would calculate 50% of 24000 so only 
transit from 12000 -> 24000 possible. 

In general, this approach is not so bad especially on small values (instead of 
256  ->374, the minimum possible transit is 256 -> 512). But we should clarify 
it somewhere with test or javadoc or both. Also, we can discuss changing this 
algorithm to a more natural implementation.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to