Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FLINK-11073] [core] Allow immutable serializers #7239

Closed
wants to merge 21 commits into from

Conversation

tzulitai
Copy link
Contributor

@tzulitai tzulitai commented Dec 5, 2018

What is the purpose of the change

See JIRA FLINK-11073 for a detailed description of the motivation for this PR.

Brief change log

  • Introduce TypeSerializerSchemaCompatibility.compatibleWithReconfiguredSerializer(TypeSerializer) as a new option for compatibility result checks.
  • Introduce CompositeTypeSerializerSnapshot class. This encapsulates logic for handling
    writing, reading, and deriving final compatibility results for composite
    serializers that have multiple nested serializers. It also respects the new TypeSerializerSchemaCompatibility.compatibleWithReconfiguredSerializer(TypeSerializer) case.
  • Let all serializer snapshots that were using the old CompositeSerializerSnapshot class to extend
    the new CompositeTypeSerializerSnapshot.
  • Rename CompositeSerializerSnapshot to NestedSerializersSnapshotDelegate to better convey its purpose after the rework. The class is also now annotated as final, as users should be using the CompositeTypeSerializerSnapshot class instead.

Verifying this change

All corresponding XXSerializerSnapshotMigrationTest of the touched serializer snapshots should all still be passing.

Does this pull request potentially affect one of the following parts:

This does affect one PublicEvolving API, the CompositeSerializerSnapshot.
It has been renamed and now made Internal.

  • Dependencies (does it add or upgrade a dependency): (yes / no)
  • The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
  • The serializers: (yes / no / don't know)
  • The runtime per-record code paths (performance sensitive): (yes / no / don't know)
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
  • The S3 file system connector: (yes / no / don't know)

The CompositeTypeSerializerSnapshot encapsulates logic for handling
writing, reading, and deriving final compatibility results for composite
serializers that have multiple nested serializers.
…alizersSnapshotDelegate

After introducing CompositeTypeSerializerSnapshot, the
CompositeSerializerSnapshot has been reworked to only deal with concerns
of delegating reading and writing of the nested serializers' snapshots.
It no longer deals with resolving the final compatibility result for the
outer composite serializer.

Therefore, it is renamed properly as NestedSerializersSnapshotDelegate,
and also annotated as an internal class, since we want users to use the
more powerful CompositeTypeSerializerSnapshot instead.
@tzulitai
Copy link
Contributor Author

tzulitai commented Jan 7, 2019

This PR is now subsumed by #7422.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants