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

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

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

    https://github.com/apache/flink/pull/4485#discussion_r135481583
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/SingleInputGate.java
 ---
    @@ -259,17 +267,72 @@ public int getNumberOfQueuedBuffers() {
     
        public void setBufferPool(BufferPool bufferPool) {
                // Sanity checks
    -           checkArgument(numberOfInputChannels == 
bufferPool.getNumberOfRequiredMemorySegments(),
    +           if (!getConsumedPartitionType().isCreditBased()) {
    +                   checkArgument(numberOfInputChannels == 
bufferPool.getNumberOfRequiredMemorySegments(),
                                "Bug in input gate setup logic: buffer pool has 
not enough guaranteed buffers " +
    -                                           "for this input gate. Input 
gates require at least as many buffers as " +
    +                                   "for this input gate. Input gates 
require at least as many buffers as " +
                                                "there are input channels.");
    +           }
     
                checkState(this.bufferPool == null, "Bug in input gate setup 
logic: buffer pool has" +
    -                           "already been set for this input gate.");
    +                   "already been set for this input gate.");
     
                this.bufferPool = checkNotNull(bufferPool);
        }
     
    +   /**
    +    * Assign the exclusive buffers to all remote input channels directly 
for credit-based mode.
    +    *
    +    * @param networkBufferPool The global pool to request and recycle 
exclusive buffers
    +    * @param networkBuffersPerChannel The number of exclusive buffers for 
each channel
    +    */
    +   public void assignExclusiveSegments(NetworkBufferPool 
networkBufferPool, int networkBuffersPerChannel) throws IOException {
    +           this.networkBufferPool = checkNotNull(networkBufferPool);
    --- End diff --
    
    please guard against using this method multiple times (like in 
`setBufferPool`) as a sanity check


> Create a fix size (non rebalancing) buffer pool type for the floating buffers
> -----------------------------------------------------------------------------
>
>                 Key: FLINK-7378
>                 URL: https://issues.apache.org/jira/browse/FLINK-7378
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: zhijiang
>            Assignee: zhijiang
>             Fix For: 1.4.0
>
>
> Currently the number of network buffers in {{LocalBufferPool}} for 
> {{SingleInputGate}} is limited by {{a * <number of channels> + b}}, where a 
> is the number of exclusive buffers for each channel and b is the number of 
> floating buffers shared by all channels.
> Considering the credit-based flow control feature, we want to create a fix 
> size buffer pool used to manage the floating buffers for {{SingleInputGate}}. 
> And the exclusive buffers are assigned to {{InputChannel}}s directly.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to