zhijiang created FLINK-15187:
--------------------------------

             Summary: Reuse LocalBufferPool for FileBufferReader in blocking 
partition
                 Key: FLINK-15187
                 URL: https://issues.apache.org/jira/browse/FLINK-15187
             Project: Flink
          Issue Type: Task
          Components: Runtime / Network
            Reporter: zhijiang


If we take the file type via 
`taskmanager.network.bounded-blocking-subpartition-type` for batch job, while 
creating the respective view for reading the subpartition persistent data, it 
would create two unpolled memory segments for every subpartition. This portion 
of temporary memory is not managed and calculated by framework, so it might 
cause OOM error concern.

We can also reuse the ResultPartition's `LocalBufferPool` to read subpartition 
data to avoid this memory overhead. But there are additional two problems for 
reuse directly. 
 * The current core size of `LocalBufferPool` is `numberOfSubpartitions + 1`, 
but every subpartition needs two segments for pre-reading atm. We can remove 
the pre-reading to make the current core pool size suitable for the reading 
requirements, because the pre-reading function seems has no obvious benefits in 
practice which is only effecting for the last data.
 * When task finishes, it would destroy the `LocalBufferPool` even though the 
respective `ResultPartition still alive, so the following subpartition view can 
not reuse the pool directly. We should adjust the respective logics to either 
delay destroy the pool or create a new pool for subpartition view.



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

Reply via email to