Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-7040

Flip-6 client-cluster communication

    XMLWordPrintableJSON

Details

    Description

      With the new Flip-6 architecture, the client will communicate with the cluster in a RESTful manner.

      The cluster shall support the following REST calls:

      • List jobs (GET): Get list of all running jobs on the cluster
      • Submit job (POST): Submit a job to the cluster (only supported in session mode)
      • Lookup job leader (GET): Gets the JM leader for the given job
      • Get job status (GET): Get the status of an executed job (and maybe the JobExecutionResult)
      • Cancel job (PUT): Cancel the given job
      • Stop job (PUT): Stops the given job
      • Take savepoint (POST): Take savepoint for given job (How to return the savepoint under which the savepoint was stored? Maybe always having to specify a path)
      • Get KV state (GET): Gets the KV state for the given job and key (Queryable state)
      • Poll/subscribe to notifications for job (GET, WebSocket): Polls new notifications from the execution of the given job/Opens WebSocket to receive notifications

      The first four REST calls will be served by the REST endpoint running in the application master/cluster entrypoint. The other calls will be served by a REST endpoint running along side to the JobManager.

      Detailed information about different implementations and their pros and cons can be found in this document:
      https://docs.google.com/document/d/1eIX6FS9stwraRdSUgRSuLXC1sL7NAmxtuqIXe_jSi-k/edit?usp=sharing

      The implementation will most likely be Netty based.

      Attachments

        Issue Links

          There are no Sub-Tasks for this issue.

          Activity

            People

              chesnay Chesnay Schepler
              trohrmann Till Rohrmann
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: