[ 
https://issues.apache.org/jira/browse/FLINK-6554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16008104#comment-16008104
 ] 

ASF GitHub Bot commented on FLINK-6554:
---------------------------------------

GitHub user tzulitai opened a pull request:

    https://github.com/apache/flink/pull/3886

    [FLINK-6554] [core] Make CompatibilityResult options more explicitly defined

    Previously, if a serializer determines that state migration needs to be
    performed but could not provide a fallback convert deserializer, it
    would use `CompatibilityResult.requiresMigration(null)`.
    
    This commit makes this option more explicit by having a
    `CompatibilityResult.requiresMigration()` option that takes no parameters.
    This should improve how the user perceives the API without having to rely on
    the Javadoc that it is allowed to have no fallback convert deserializer.
    
    Consequently, when using 
`CompatibilityResult.requiresMigration(TypeDeserializer)`, the provided 
argument cannot be null.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/tzulitai/flink FLINK-6554

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/3886.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3886
    
----
commit 444329f10f7272ad9964088720c3a8ffb67d30ca
Author: Tzu-Li (Gordon) Tai <[email protected]>
Date:   2017-05-12T13:00:51Z

    [FLINK-6554] [core] Make CompatibilityResult options more explicitly defined
    
    Previously, if a serializer determines that state migration needs to be
    performed but could not provide a fallback convert deserializer, it
    would use CompatibilityResult.requiresMigration(null).
    
    This commit makes this option more explicit by having a
    CompatibilityResult.requiresMigration() option that takes no parameters.
    This improves how the user perceives the API without having to rely on
    the Javadoc that it is allowed to have no fallback convert deserializer.
    
    Consequently, when using
    CompatibilityResult.requiresMigration(TypeDeserializer), the provided
    argument cannot be null.

----


> CompatibilityResult should contain a notCompatible() option
> -----------------------------------------------------------
>
>                 Key: FLINK-6554
>                 URL: https://issues.apache.org/jira/browse/FLINK-6554
>             Project: Flink
>          Issue Type: Improvement
>          Components: Type Serialization System
>    Affects Versions: 1.3.0, 1.4.0
>            Reporter: Chesnay Schepler
>            Assignee: Tzu-Li (Gordon) Tai
>            Priority: Minor
>
> The {{CompatibilityResult}} allows a {{TypeSerializer}} to specify whether it 
> is compatible based on the given {{TypeSerializerConfigSnapshot}}.
> As it stands the only options are {{compatible}} and {{requiresMigration}}. 
> We should allow serializers to also notify the system of an incompatibility 
> which should then fail the job.
> This would for example be required when a serializer provides an upgrade path 
> version1 -> version2 -> version3, but not directly from version1 -> version3. 
> Currently, the serializer would either have to contain logic to upgrade from 
> every single previous version or simply throw an exception on it's own.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to