Github user NicoK commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4509#discussion_r152853208
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
 ---
    @@ -572,20 +560,53 @@ void addExclusiveBuffer(Buffer buffer) {
                        exclusiveBuffers.add(buffer);
                }
     
    -           Buffer takeExclusiveBuffer() {
    -                   return exclusiveBuffers.poll();
    -           }
    -
                void addFloatingBuffer(Buffer buffer) {
                        floatingBuffers.add(buffer);
                }
     
    -           Buffer takeFloatingBuffer() {
    -                   return floatingBuffers.poll();
    +           /**
    +            * Add the exclusive buffer into the queue, and recycle one 
floating buffer if the
    +            * number of available buffers in queue is more than required 
amount.
    +            *
    +            * @param buffer The exclusive buffer of this channel.
    +            * @return Whether to recycle one floating buffer.
    +            */
    +           boolean maintainTargetSize(Buffer buffer) {
    --- End diff --
    
    actually, this is now offering two functionalities:
    ```
    addExclusiveBuffer(buffer);
    maintainTargetSize(numRequiredBuffers);
    ```
    I'd suggest to either use the two separately or integrate the target size 
maintaining into `addExclusiveBuffers`. In any case, you should make 
`AvailableBufferQueue` a `static` inner class which could then also be tested 
separately.


---

Reply via email to