[
https://issues.apache.org/jira/browse/FLINK-17024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17163057#comment-17163057
]
Till Rohrmann commented on FLINK-17024:
---------------------------------------
I guess the main benefit would be not having to introduce a new {{Executor}} if
you just want to run some futures outside of the {{RpcService}} thread pool. It
would be somewhat similar to {{ForkJoinPool#commonPool()}} which is used when
not specifying an explicit executor with any of the async {{CompletableFuture}}
calls. But for any heavy workloads it is usually a better idea to introduce a
dedicated thread pool.
Since it is always a good idea to not offer ways to shoot yourself into the
foot, it might actually be better to completely remove
{{RpcService.getExecutor}} and {{RpcService.getScheduledExecutor}} so that
users don't use it wrongly. Hence, +1 for Chesnay's proposal.
> Make AkkaRpcService#getExecutor return a custom thread pool
> -----------------------------------------------------------
>
> Key: FLINK-17024
> URL: https://issues.apache.org/jira/browse/FLINK-17024
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / Coordination
> Reporter: Yang Wang
> Priority: Major
>
> Follow the discussion in this PR[1].
> Currently, {{AkkaRpcServcie#getExecutor}} returns Akka's underlying
> dispatcher thread pool. It should not be used since it will take the risk to
> affect the main thread of rpc endpoint. We could return a custom thread pool
> instead. The it is safe to used for some I/O operations in the
> {{RpcEndpoint}}, for example, {{stopPod}} in {{KubernetesResourceManager}}.
> An elastic thread pool(from 4 up to 16) is enough.
>
> [1]. [https://github.com/apache/flink/pull/11427#discussion_r402738678]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)