Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-16428 Fine-grained network buffer management for backpressure
  3. FLINK-16641

Announce sender's backlog to solve the deadlock issue without exclusive buffers

    XMLWordPrintableJSON

Details

    Description

      This is the second ingredient besides FLINK-16404 to solve the deadlock problem without exclusive buffers.

      The scenario is as follows:

      • The data in subpartition with positive backlog can be sent without doubt because the exclusive credits would be feedback finally.
      • Without exclusive buffers, the receiver would not request floating buffers for 0 backlog. But when the new backlog is added into such subpartition, it has no way to notify the receiver side without positive credits ATM.
      • So it would result in waiting for each other between receiver and sender sides to cause deadlock. The sender waits for credit to notify backlog and the receiver waits for backlog to request floating credits.

      To solve the above problem, the sender needs a separate message to announce backlog sometimes besides existing `BufferResponse`. Then the receiver can get this info to request floating buffers to feedback.

      The side effect brought is to increase network transport delay and throughput regression. We can measure how much it effects in existing micro-benchmark. It might probably bear this effect to get a benefit of fast checkpoint without exclusive buffers. We can give the proper explanations in respective configuration options to let users make the final decision in practice.

      Attachments

        Issue Links

          Activity

            People

              kevin.cyj Yingjie Cao
              zjwang Zhijiang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: