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

            wangyang0918 Yang Wang
            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