[ 
https://issues.apache.org/jira/browse/FLINK-8747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16373809#comment-16373809
 ] 

ASF GitHub Bot commented on FLINK-8747:
---------------------------------------

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

    https://github.com/apache/flink/pull/5558#discussion_r170148132
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
 ---
    @@ -337,6 +337,11 @@ public int getSenderBacklog() {
                return numRequiredBuffers - initialCredit;
        }
     
    +   @VisibleForTesting
    +   public boolean isWaitingForFloatingBuffers() {
    --- End diff --
    
    yes


> The tag of waiting for floating buffers in RemoteInputChannel should be 
> updated properly
> ----------------------------------------------------------------------------------------
>
>                 Key: FLINK-8747
>                 URL: https://issues.apache.org/jira/browse/FLINK-8747
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Network
>    Affects Versions: 1.5.0
>            Reporter: zhijiang
>            Assignee: zhijiang
>            Priority: Minor
>
> In credit-based flow control mode, when the number of available buffers is 
> less than required buffers (backlog + initialCredit), the 
> {{RemoteInputChannel}} will request floating buffers from {{BufferProvider}}. 
> If not get enough available floating buffers, the {{RemoteInputChannel}} 
> registers itself as listener in {{BufferProvider}} and updates the tag 
> {{isWaitingForFloatingBuffers}} as {{true}} to avoid registration repeatedly.
>  
> When a floating buffer is recycled to {{BufferProvider}}, it will notify the 
> listener of available buffer. But the listener may not need floating buffers 
> currently if the available buffers is not less than required buffers, then 
> the floating buffers will be returned to {{BufferProvider}} directly. Most 
> importantly, the tag {{isWaitingForFloatingBuffers}} should also be updated 
> as {{false, otherwise the RemoteInputChannel}} will not request floating 
> buffers any more after the available buffers less than required buffers.
>  
> There are two scenarios for causing the above issue:
>  * The recycled exclusive buffers increase the total available buffers which 
> is equal to or more than required buffers.
>  * The decreased sender's backlog resulting the available buffers equal to 
> required buffers.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to