You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Roman Grebennikov (Jira)" <ji...@apache.org> on 2020/07/17 14:33:00 UTC

[jira] [Created] (FLINK-18631) Serializer for scala sealed trait hierarchies

Roman Grebennikov created FLINK-18631:
-----------------------------------------

             Summary: Serializer for scala sealed trait hierarchies
                 Key: FLINK-18631
                 URL: https://issues.apache.org/jira/browse/FLINK-18631
             Project: Flink
          Issue Type: Improvement
          Components: API / Type Serialization System
    Affects Versions: 1.11.0
            Reporter: Roman Grebennikov


Currently, when flink serialization system spots an ADT-style class hierarchy in the Scala code, it falls back to GenericType and kryo serialization, which may introduce performance issues. For example, for code:

{{sealed trait ADT}}{{case class Foo(a: String) extends ADT}}{{case class Bar(b: Int) extends ADT}}{{env.fromCollection(List[ADT](Foo("a"),Bar(1))).collect()}}

 

It will fall back to Kryo even if there is no problem with dealing with List[Foo] or List[Bar] separately. Using ADTs is a convenient way in Scala to model different types of messages, but Flink type system performance limits it to only a non performance-critical paths.

 

It would be nice to have a sealed trait hierarchies support out of the box without kryo fallback.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)