SmirAlex commented on code in PR #20919:
URL: https://github.com/apache/flink/pull/20919#discussion_r1033131501


##########
flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/functions/table/lookup/fullcache/inputformat/InputFormatCacheLoader.java:
##########
@@ -107,7 +109,11 @@ protected void reloadCache() throws Exception {
         } catch (InterruptedException ignored) { // we use interrupt to close 
reload thread
         } finally {
             if (cacheLoadTaskService != null) {
+                // if main cache reload thread encountered an exception,
+                // it interrupts underlying InputSplitCacheLoadTasks threads
                 cacheLoadTaskService.shutdownNow();

Review Comment:
   To be honest, during development I didn't think about relying on 
ForkJoinPool. As I understand, it's very useful when we have many little tasks, 
which can create other little subtasks. But in our case we have fixed amount ( 
= number of splits) of long running tasks, that won't create other subtasks. So 
simple fixed thread pool looked as a pretty straightforward way to implement 
cache loading. Plus, if we will use commonForkPool, there can be a situation 
when we will utilize all threads in this pool (our tasks are long-running), and 
other tasks that relies on commonForkPool with be starving, which is 
undesirable behavior, as I understand. Correct me, if I'm wrong, please



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to