Hi Yingjie,

Very thanks for drafting the FLIP and initiating the discussion! 

May I have a double confirmation for 
taskmanager.network.sort-shuffle.min-parallelism that
since other frameworks like Spark have used sort-based shuffle for all the 
cases, does our
current circumstance still have difference with them? 

Best,
Yun




------------------------------------------------------------------
From:Yingjie Cao <kevin.ying...@gmail.com>
Send Time:2021 Dec. 10 (Fri.) 16:17
To:dev <dev@flink.apache.org>; user <u...@flink.apache.org>; user-zh 
<user...@flink.apache.org>
Subject:Re: [DISCUSS] Change some default config values of blocking shuffle

Hi dev & users:

I have created a FLIP [1] for it, feedbacks are highly appreciated.

Best,
Yingjie

[1] 
https://cwiki.apache.org/confluence/display/FLINK/FLIP-199%3A+Change+some+default+config+values+of+blocking+shuffle+for+better+usability
Yingjie Cao <kevin.ying...@gmail.com> 于2021年12月3日周五 17:02写道:

Hi dev & users,

We propose to change some default values of blocking shuffle to improve the 
user out-of-box experience (not influence streaming). The default values we 
want to change are as follows:

1. Data compression (taskmanager.network.blocking-shuffle.compression.enabled): 
Currently, the default value is 'false'.  Usually, data compression can reduce 
both disk and network IO which is good for performance. At the same time, it 
can save storage space. We propose to change the default value to true.

2. Default shuffle implementation 
(taskmanager.network.sort-shuffle.min-parallelism): Currently, the default 
value is 'Integer.MAX', which means by default, Flink jobs will always use 
hash-shuffle. In fact, for high parallelism, sort-shuffle is better for both 
stability and performance. So we propose to reduce the default value to a 
proper smaller one, for example, 128. (We tested 128, 256, 512 and 1024 with a 
tpc-ds and 128 is the best one.)

3. Read buffer of sort-shuffle 
(taskmanager.memory.framework.off-heap.batch-shuffle.size): Currently, the 
default value is '32M'. Previously, when choosing the default value, both ‘32M' 
and '64M' are OK for tests and we chose the smaller one in a cautious way. 
However, recently, it is reported in the mailing list that the default value is 
not enough which caused a buffer request timeout issue. We already created a 
ticket to improve the behavior. At the same time, we propose to increase this 
default value to '64M' which can also help.

4. Sort buffer size of sort-shuffle 
(taskmanager.network.sort-shuffle.min-buffers): Currently, the default value is 
'64' which means '64' network buffers (32k per buffer by default). This default 
value is quite modest and the performance can be influenced. We propose to 
increase this value to a larger one, for example, 512 (the default TM and 
network buffer configuration can serve more than 10 result partitions 
concurrently).

We already tested these default values together with tpc-ds benchmark in a 
cluster and both the performance and stability improved a lot. These changes 
can help to improve the out-of-box experience of blocking shuffle. What do you 
think about these changes? Is there any concern? If there are no objections, I 
will make these changes soon.

Best,
Yingjie

Reply via email to