[
https://issues.apache.org/jira/browse/FLINK-16596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17070933#comment-17070933
]
Aljoscha Krettek commented on FLINK-16596:
------------------------------------------
Thanks for the good analysis. For the implementation, however, can't users just
write a {{KeySelector}}, which can be a very succinct lambda that calls
{{name()}} or {{ordinal()}}? I would like to keep as much added complexity out
of Flink as possible.
See also FLINK-16555.
> Support Enum-Values as part of a Key
> ------------------------------------
>
> Key: FLINK-16596
> URL: https://issues.apache.org/jira/browse/FLINK-16596
> Project: Flink
> Issue Type: Improvement
> Components: API / DataStream
> Reporter: Felix Wollschläger
> Priority: Major
>
> See: FLINK-11774
> h2. Description:
> The hashCode implementation of Enum-Values is guaranteed to be stable inside
> a JVM, but not accross multiple JVMs. This leads to failures when restoring
> from a checkpoint/savepoint containing Keyed-State on Keys with Enums as a
> part of the key.
> For users of Flink there is a workaround to solve this problem:
> Don't rely on the hashCode-Implementation of Enum-Values in the
> hashCode-Implementation of the actual key. Use the ordinal() or
> name().hashCode() instead of the Enum hashCode.
> h2. Goals of this improvement:
> Implement a way to handle Enum-Values, by either handling Enum-Values on a
> internal level or implementing a abstract Base KeySelector class that users
> of flink can choose if their key contains a Enum-Value.
> Code to reproduce a failure and first thoughts can be found in FLINK-11774 .
--
This message was sent by Atlassian Jira
(v8.3.4#803005)