You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Stephan Ewen (Jira)" <ji...@apache.org> on 2020/02/24 15:33:00 UTC

[jira] [Created] (FLINK-16259) Drop interface/impl separation for checkpoint Metadata and rename MetadataV2 to CheckpointMetadata

Stephan Ewen created FLINK-16259:
------------------------------------

             Summary:  Drop interface/impl separation for checkpoint Metadata and rename MetadataV2 to CheckpointMetadata
                 Key: FLINK-16259
                 URL: https://issues.apache.org/jira/browse/FLINK-16259
             Project: Flink
          Issue Type: Improvement
            Reporter: Stephan Ewen
            Assignee: Stephan Ewen


The interface {{Savepoint}} (which described the checkpoint metadata) and its different implementations are misleading. There is only ever one real implementation: the latest version.
All deserializers need to go to that version, to keep the complex versioning logic out of other parts of the code.

Further more, this is a simple "data holder" class, simply storing collections, there is no behavior to be abstracted behind an interface.

Even if there were different versions (as in an earlier version of the code, where a class for tests was in the main scope), the interface becomes a union of all accessors to all different collections from different versions (with all accessors but the ones for the latest version deprecated).

In conclusion, this interface is misleading and suggesting something that is not there, namely that multiple versions of the metadata are handled in various places in the code, and not just during deserialization.

To make this explicit, we should remove the {{Savepoint}} interface and have only one implementation (SavepointV2}}) renamed to {{CheckpointMetadata}}.

See also FLINK-16247 about renaming the {{checkpoint.savepoint}} package to {{checkpoint.metadata}}.




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