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

Introduce another greedy mechanism for distributing floating buffers

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Minor
    • Resolution: Later
    • 1.8.0
    • None
    • Runtime / Network
    • None

    Description

      The current mechanism for distributing floating buffers is fair for all the listeners. In detail, each input channel can only request one floating buffer each time although this channel may actually need more floating buffers. Then this channel has to loop to request floating buffer until all are satisfied or pool is exhausted.

      In generally speaking, this way seems fair for all the concurrent channels invoked by netty nio thread.  But every request from LocalBufferPool needs to syn lock and it is hard to say how to distribute all the available floating buffers behaves better in real scenarios.

      Therefore we propose another greedy mechanism to request more floating buffers each time. In extreme case, we can even request all the required buffers at a time or partial ones via configured parameters.  On the other side, LocalBufferPool can also decide how many floating buffers should been assigned based on some factors, such as how many total channels and how many total floating buffers.

      The motivation is making better use of floating buffer resources and it may need extra metrics for adjusting the mechanism dynamically.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: