Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-7282 Credit-based Network Flow Control
  3. FLINK-8747

The tag of waiting for floating buffers in RemoteInputChannel should be updated properly

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.5.0
    • 1.5.0
    • Runtime / Network
    • None

    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.

      Attachments

        Issue Links

          Activity

            People

              zjwang Zhijiang
              zjwang Zhijiang
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: