[
https://issues.apache.org/jira/browse/FLINK-18203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jiayi Liao updated FLINK-18203:
-------------------------------
Description:
#{{RoundRobinOperatorStateRepartitioner}}#{{repartitionUnionState}} creates a
new {{OperatorStreamStateHandle}} instance for every {{StreamStateHandle}}
instance used in every execution, which causes the number of new
{{OperatorStreamStateHandle}} instances up to m * n (jobvertex parallelism *
count of all executions' StreamStateHandle).
But in fact, all executions can share the same collection of
{{StreamStateHandle}} and the number of {{OperatorStreamStateHandle}} can be
reduced down to the count of all executions' StreamStateHandle.
I met this problem on production when we're testing a job with parallelism=10k
and the memory problem is extermely serious when yarn containers go dead and
the job starts doing failover.
was:
#{{RoundRobinOperatorStateRepartitioner}}#{{repartitionUnionState}} creates a
new {{OperatorStreamStateHandle}} instance for every {{StreamStateHandle}}
instance used in every execution, which causes the number of new
{{OperatorStreamStateHandle}} instances up to m * n (jobvertex parallelism *
count of all executions' StreamStateHandle).
But in fact, all executions can share the same collection of
{{StreamStateHandle}} because it's **union state**.
> Reduce objects usage in redistributing union states
> ---------------------------------------------------
>
> Key: FLINK-18203
> URL: https://issues.apache.org/jira/browse/FLINK-18203
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / Checkpointing
> Affects Versions: 1.10.1
> Reporter: Jiayi Liao
> Priority: Major
>
> #{{RoundRobinOperatorStateRepartitioner}}#{{repartitionUnionState}} creates a
> new {{OperatorStreamStateHandle}} instance for every {{StreamStateHandle}}
> instance used in every execution, which causes the number of new
> {{OperatorStreamStateHandle}} instances up to m * n (jobvertex parallelism *
> count of all executions' StreamStateHandle).
> But in fact, all executions can share the same collection of
> {{StreamStateHandle}} and the number of {{OperatorStreamStateHandle}} can be
> reduced down to the count of all executions' StreamStateHandle.
> I met this problem on production when we're testing a job with
> parallelism=10k and the memory problem is extermely serious when yarn
> containers go dead and the job starts doing failover.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)