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

Zhu Zhu commented on FLINK-23402:
---------------------------------

+1 for option #2 to rename {{ShuffleMode}} as well as the corresponding config 
option. Because the config option way will always be required considering sql 
jobs(as a replacement of {{table.exec.shuffle-mode}}) and we cannot prevent 
users to set execution mode and shuffle mode with invalid combinations. 

Agreed that {{AUTOMATIC}} does not make too much sense then, and a proper 
default value of the config option would be good enough. So I think we can drop 
it and just keep {{ALL_EXCHANGES_PIPELINED}} and {{ALL_EXCHANGES_BLOCKING}} at 
the moment and use {{ALL_EXCHANGES_BLOCKING}} as the default value. 
Later after we have implemented the proposed global shuffle mode in 
FLINK-23470. We can add it with an explicit name 
({{INTRA_SLOT_EXCHANGES_PIPELINED}} maybe) to the accepted values of the config 
option and make it the default value.

> Expose a consistent GlobalDataExchangeMode
> ------------------------------------------
>
>                 Key: FLINK-23402
>                 URL: https://issues.apache.org/jira/browse/FLINK-23402
>             Project: Flink
>          Issue Type: Sub-task
>          Components: API / DataStream
>            Reporter: Timo Walther
>            Assignee: Timo Walther
>            Priority: Major
>              Labels: pull-request-available
>
> The Table API makes the {{GlobalDataExchangeMode}} configurable via 
> {{table.exec.shuffle-mode}}.
> In Table API batch mode the StreamGraph is configured with 
> {{ALL_EDGES_BLOCKING}} and in DataStream API batch mode 
> {{FORWARD_EDGES_PIPELINED}}.
> I would vote for unifying the exchange mode of both APIs so that complex SQL 
> pipelines behave identical in {{StreamTableEnvironment}} and 
> {{TableEnvironment}}. Also the feedback a got so far would make 
> {{ALL_EDGES_BLOCKING}} a safer option to run pipelines successfully with 
> limited resources.
> [~lzljs3620320]
> {quote}
> The previous history was like this:
> - The default value is pipeline, and we find that many times due to 
> insufficient resources, the deployment will hang. And the typical use of 
> batch jobs is small resources running large parallelisms, because in batch 
> jobs, the granularity of failover is related to the amount of data processed 
> by a single task. The smaller the amount of data, the faster the fault 
> tolerance. So most of the scenarios are run with small resources and large 
> parallelisms, little by little slowly running.
> - Later, we switched the default value to blocking. We found that the better 
> blocking shuffle implementation would not slow down the running speed much. 
> We tested tpc-ds and it took almost the same time.
> {quote}
> [~dwysakowicz]
> {quote}
> I don't see a problem with changing the default value for DataStream batch 
> mode if you think ALL_EDGES_BLOCKING is the better default option.
> {quote}
> In any case, we should make this configurable for DataStream API users and 
> make the specific Table API option obsolete.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to