[
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)