[ 
https://issues.apache.org/jira/browse/FLINK-17861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Khachatryan updated FLINK-17861:
--------------------------------------
    Description: 
If Unaligned checkpoints are enabled, channel state is written as state 
handles. Each channel has a handle and each such handle references the same 
underlying {{streamStateHandle}} (this is done to have a single file per 
subtask).
But, if the state is less then {{state.backend.fs.memory-threshold}}, the data 
is sent directly to JM as a byteStreamHandle. This causes each channel state 
handle to hold the whole subtask state.

This PR solves this by extracting relevant potions of the underlying handles if 
they are {{byteStreamHandle}}s.

  was:
When a subtask snapshots its state it creates one channelStateHandle per 
inputChannel/resultSubpartition. All handles of a single subtask share the 
underlying streamStateHandle. This is an optimisation to prevent having too 
many files.

But if streamStateHandle is inlined (size < state.backend.fs.memory-threshold) 
then most of the bytes in the underlying streamStateHandle are duplicated.


> Channel state handles, when inlined, duplicate underlying data
> --------------------------------------------------------------
>
>                 Key: FLINK-17861
>                 URL: https://issues.apache.org/jira/browse/FLINK-17861
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Checkpointing, Runtime / Task
>    Affects Versions: 1.11.0
>            Reporter: Roman Khachatryan
>            Assignee: Roman Khachatryan
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.11.0
>
>
> If Unaligned checkpoints are enabled, channel state is written as state 
> handles. Each channel has a handle and each such handle references the same 
> underlying {{streamStateHandle}} (this is done to have a single file per 
> subtask).
> But, if the state is less then {{state.backend.fs.memory-threshold}}, the 
> data is sent directly to JM as a byteStreamHandle. This causes each channel 
> state handle to hold the whole subtask state.
> This PR solves this by extracting relevant potions of the underlying handles 
> if they are {{byteStreamHandle}}s.



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

Reply via email to