Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-15788 Various Kubernetes integration improvements
  3. FLINK-15790

Make FlinkKubeClient and its implementations asynchronous

    XMLWordPrintableJSON

    Details

      Description

      The FlinkKubeClient interface offers several methods which are synchronous (e.g. FlinkKubeClient.createTaskManagerPod, FlinkKubeClient.stopPod, FlinkKubeClient.getPodsWithLabels, etc). The problem is that these methods are directly used by the KubernetesResourceManager which calls them from the main thread. Since these methods perform I/O operations (sending and receiving network packages) they can potentially block the execution and hence should not happen from the RpcEndpoint's main thread.

      I propose to make all potentially blocking operations on the FlinkKubeClient asynchronous so that the KubernetesResourceManager does not risk to block the main thread. Alternatively, we could also introduce a FlinkKubeClientAsync which offers asynchronous operations.

        Attachments

          Activity

            People

            • Assignee:
              fly_in_gis Yang Wang
              Reporter:
              trohrmann Till Rohrmann
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 40m
                40m