Github user zhijiangW commented on a diff in the pull request:
https://github.com/apache/flink/pull/4735#discussion_r141398906
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
---
@@ -87,6 +88,12 @@
/** The number of available buffers that have not been announced to the
producer yet. */
private final AtomicInteger unannouncedCredit = new AtomicInteger(0);
+ /** The number of unsent buffers in the producer's sub partition. */
+ private final AtomicInteger senderBacklog = new AtomicInteger(0);
+
+ /** The tag indicates whether this channel is waiting for additional
floating buffers from the buffer pool. */
+ private final AtomicBoolean isWaitingFloatingBuffers = new
AtomicBoolean(false);
--- End diff --
These two fields are currently used in `notifyBufferAvailable()` logic, so
we have to define them in this PR.
In next PR #4509 , `isWaitingForFloatingBuffers` field will be set true by
two conditions:
1. The number of current available buffers is less than sender backlog
2. There are no available floating buffers in `BufferProvider`
And this field also used to avoid register listener in `BufferProvider`
multi times.
It may confuse you to only see this PR change, sorry for that.
---