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)