You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Tzu-Li (Gordon) Tai (JIRA)" <ji...@apache.org> on 2017/06/06 08:57:18 UTC

[jira] [Updated] (FLINK-6804) Inconsistent state migration behaviour between different state backends

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