[
https://issues.apache.org/jira/browse/FLINK-6804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tzu-Li (Gordon) Tai updated FLINK-6804:
---------------------------------------
Labels: flink-rel-1.3.1-blockers (was: )
> Inconsistent state migration behaviour between different state backends
> -----------------------------------------------------------------------
>
> Key: FLINK-6804
> URL: https://issues.apache.org/jira/browse/FLINK-6804
> Project: Flink
> Issue Type: Bug
> Components: State Backends, Checkpointing, Type Serialization System
> Affects Versions: 1.3.0, 1.4.0
> Reporter: Till Rohrmann
> Assignee: Tzu-Li (Gordon) Tai
> Priority: Critical
> Labels: flink-rel-1.3.1-blockers
>
> The {{MemoryStateBackend}}, {{FsStateBackend}} and {{RocksDBStateBackend}}
> show a different behaviour when it comes to recovery from old state and state
> migration. For example, using the {{MemoryStateBackend}} it is possible to
> recover pojos which now have additional fields (at recovery time). The only
> caveat is that the recovered {{PojoSerializer}} will silently drop the added
> fields when writing the new Pojo. In contrast, the {{RocksDBStateBackend}}
> correctly recognizes that a state migration is necessary and thus fails with
> a {{StateMigrationException}}. The same applies to the case where Pojo field
> types change. The {{MemoryStateBackend}} and the {{FsStateBackend}} accept
> such a change as long as the fields still have the same length. The
> {{RocksDBStateBackend}} correctly fails with a {{StateMigrationException}}.
> I think that all state backends should behave similarly and give the user the
> same recovery and state migration guarantees. Otherwise, it could happen that
> jobs run with one state backend but not with another (wrt semantic behaviour).
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)