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)

Reply via email to