You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Zhijiang (Jira)" <ji...@apache.org> on 2020/03/18 04:05:00 UTC

[jira] [Created] (FLINK-16641) Announce sender's backlog to solve the deadlock issue without exclusive buffers

Zhijiang created FLINK-16641:
--------------------------------

             Summary: Announce sender's backlog to solve the deadlock issue without exclusive buffers
                 Key: FLINK-16641
                 URL: https://issues.apache.org/jira/browse/FLINK-16641
             Project: Flink
          Issue Type: Sub-task
          Components: Runtime / Network
            Reporter: Zhijiang
             Fix For: 1.11.0


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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)