[ 
https://issues.apache.org/jira/browse/FLINK-26370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17499395#comment-17499395
 ] 

Yang Wang commented on FLINK-26370:
-----------------------------------

[~kelemensanyi] You are right. The problem is calls to the flink clusters will 
block operator thread.

I think you have given a thorough analysis of all the solution. The option #3 
seems to be right direction to go. But I am afraid it will make the reconcile 
too complicated. I am curious whether we could simply move out the blocking 
calls(accessing the flink clusters via rest client) to a separate thread pool, 
which periodically get the job status from flink cluster and cache them locally.

> Make Flink cluster communication asynchronous
> ---------------------------------------------
>
>                 Key: FLINK-26370
>                 URL: https://issues.apache.org/jira/browse/FLINK-26370
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Kubernetes Operator
>            Reporter: Gyula Fora
>            Assignee: Sandor Kelemen
>            Priority: Major
>
> In the current architecture calls to the flink clusters (through the rest 
> client) are made synchronously from the reconcile loop. 
> These calls often take a long time due to various (compeltely normal) reasons:
>  - Cluster is not ready -> long call + timeoutexception
>  - Operation takes a long time -> cancel/savepoint operations are often 
> expected to take seconds/minutes
> Both the observer and reconciler components make these calls.
> We should come up with a way to avoid making these sync calls from the main 
> loop while still preserving the logic of the operator.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to