Github user NicoK commented on a diff in the pull request:
https://github.com/apache/flink/pull/6254#discussion_r201273133
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
---
@@ -479,6 +508,9 @@ void onSenderBacklog(int backlog) throws IOException {
numRequiredBuffers = backlog + initialCredit;
while (bufferQueue.getAvailableBufferSize() <
numRequiredBuffers && !isWaitingForFloatingBuffers) {
+ // TODO: this will take a lock in the
LocalBufferPool as well and needs to be done
+ // outside the synchronized block (which is a
bit difficult trying to acquire the
+ // lock only once!
Buffer buffer =
inputGate.getBufferPool().requestBuffer();
--- End diff --
I'm not sure about this change since this may lead to lower-throughput
channels being starved by high-throughput channels, but we can discuss further
with a broader audience in the JIRA ticket once created (this is off-topic here)
---