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

Piotr Nowojski commented on FLINK-14845:
----------------------------------------

[~kevin.cyj], I think I would prefer the 3rd option, but I think you are right, 
potential implementation cost of this option might not be worth it for now. 

I guess the difference between 2. and 4. in terms of an implementation is very 
small? We could start with 4. and re-evaluate 3., if we ever get such request 
from a user.

Side note, [~AHeise] made me aware that we might find this compression useful 
also for spilling the buffers for unaligned checkpoints. 

Also just for the record. I was thinking about another solution, to 
compress/decompress the data in Netty handlers. For streaming that would solve 
all of the problems with network flushes and small records/buffers (Netty would 
be compressing multiplexed channels), but again that wouldn't be very helpful 
for the {{BoundedBlockingSubpartition}}. Again, for now we can stick with the 
common compression code path shared between streaming/batch and if this ever 
becomes an issue, we can re-visit.

> Introduce data compression to blocking shuffle.
> -----------------------------------------------
>
>                 Key: FLINK-14845
>                 URL: https://issues.apache.org/jira/browse/FLINK-14845
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Runtime / Network
>            Reporter: Yingjie Cao
>            Assignee: Yingjie Cao
>            Priority: Major
>
> Currently, blocking shuffle writer writes raw output data to disk without 
> compression. For IO bounded scenario, this can be optimized by compressing 
> the output data. It is better to introduce a compression mechanism and offer 
> users a config option to let the user decide whether to compress the shuffle 
> data. Actually, we hava implemented compression in our inner Flink version 
> and  here are some key points:
> 1. Where to compress/decompress?
> Compressing at upstream and decompressing at downstream.
> 2. Which thread do compress/decompress?
> Task threads do compress/decompress.
> 3. Data compression granularity.
> Per buffer.
> 4. How to handle that when data size become even bigger after compression?
> Give up compression in this case and introduce an extra flag to identify if 
> the data was compressed, that is, the output may be a mixture of compressed 
> and uncompressed data.
>  
> We'd like to introduce blocking shuffle data compression to Flink if there 
> are interests.
>  



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

Reply via email to