Hi Stephan,

I am in favor of renaming forceKryo() instead of removing it, because users
might plugin their Protobuf/Thrift serializers via Kryo as advertised in
our documentation [1]. For this, Kryo needs to be used for POJO types as
well, if I am not mistaken.

Cheers,

Konstantin

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/custom_serializers.html


On Tue, Mar 26, 2019 at 10:03 AM Stephan Ewen <se...@apache.org> wrote:

> Compatibility is really important for checkpointed state.
> For that, you can always directly specify GenericTypeInfo or AvroTypeInfo
> if you want to continue to treat a type via Kryo or Avro.
>
> Alternatively, once https://issues.apache.org/jira/browse/FLINK-11917 is
> implemented, this should happen automatically.
>
> On Tue, Mar 26, 2019 at 8:33 AM Yun Tang <myas...@live.com> wrote:
>
>> Hi Stephan
>>
>> I prefer to remove 'enableForceKryo' since Kryo serializer does not work
>> out-of-the-box well for schema evolution stories due to its mutable
>> properties, and our built-in POJO serializer has already supported schema
>> evolution.
>>
>> On the other hand, what's the backward compatibility plan for
>> enableForceAvro() and enableForceKryo()?  I think if
>> https://issues.apache.org/jira/browse/FLINK-11917 merged, we could
>> support to migrate state which was POJO but serialized using Kryo.
>>
>> Best
>> Yun Tang
>> ------------------------------
>> *From:* Stephan Ewen <se...@apache.org>
>> *Sent:* Tuesday, March 26, 2019 2:31
>> *To:* dev; user
>> *Subject:* [DISCUSS] Remove forceAvro() and forceKryo() from the
>> ExecutionConfig
>>
>> Hi all!
>>
>> The ExecutionConfig has some very old settings: forceAvro() and
>> forceKryo(), which are actually misleadingly named. They cause POJOs to use
>> Avro or Kryo rather than the POJO serializer.
>>
>> I think we do not have a good case any more to use Avro for POJOs. POJOs
>> that are also Avro types go through the Avro serializer anyways.
>>
>> There may be a case to use Kryo for POJOs if you don't like the Flink
>> POJO serializer.
>>
>> I would suggest to remove the "forceAvro()" option completely.
>> For "forceKryo()", I am torn between removing it completely or renaming
>> it to "setUseKryoForPOJOs()".
>>
>> What are the opinion on that out there?
>>
>> Best,
>> Stephan
>>
>>

-- 

Konstantin Knauf | Solutions Architect

+49 160 91394525

<https://www.ververica.com/>

Follow us @VervericaData

--

Join Flink Forward <https://flink-forward.org/> - The Apache Flink
Conference

Stream Processing | Event Driven | Real Time

--

Data Artisans GmbH | Invalidenstrasse 115, 10115 Berlin, Germany

--
Data Artisans GmbH
Registered at Amtsgericht Charlottenburg: HRB 158244 B
Managing Directors: Dr. Kostas Tzoumas, Dr. Stephan Ewen

Reply via email to