[ 
https://issues.apache.org/jira/browse/FLINK-8747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

zhijiang updated FLINK-8747:
----------------------------
    Description: 
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.

  was:
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.


> 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