You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "László Bodor (Jira)" <ji...@apache.org> on 2020/03/01 16:10:01 UTC

[jira] [Updated] (HIVE-22944) Upgrade to Kryo5

     [ https://issues.apache.org/jira/browse/HIVE-22944?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

László Bodor updated HIVE-22944:
--------------------------------
    Description: 
experimental ticket

Maybe we should consider upgrading to kryo5 (plan ser/deser). Not sure about performance benefits, but looking at the code, e.g. FieldSerializer in Kryo5 seems to let us extend it easier (less private fields), which could be a benefit if we want to change its behavior, e.g. defining different logic for different fields of an object.

Kryo 4 FieldSerializer: https://github.com/EsotericSoftware/kryo/blob/kryo-4/src/com/esotericsoftware/kryo/serializers/FieldSerializer.java
Kryo 5 FieldSerialier: https://github.com/EsotericSoftware/kryo/blob/master/src/com/esotericsoftware/kryo/serializers/FieldSerializer.java

versions, according to maven central:

5.0.0-RC4 - Apr, 2019
5.0.0-RC3 - Apr, 2019
5.0.0-RC2 - Feb, 2019
5.0.0-RC1 - Jun, 2018

there is no "5.0.0" yet

TODO: why kryo-shaded artifact has been used so far?
https://javalibs.com/artifact/com.esotericsoftware/kryo-shaded
"This contains the shaded reflectasm jar to prevent conflicts with other versions of asm."

  was:
Maybe we should consider upgrading to kryo5 (plan ser/deser). Not sure about performance benefits, but looking at the code, e.g. FieldSerializer in Kryo5 seems to let us extend it easier (less private fields), which could be a benefit if we want to change its behavior, e.g. defining different logic for different fields of an object.

Kryo 4 FieldSerializer: https://github.com/EsotericSoftware/kryo/blob/kryo-4/src/com/esotericsoftware/kryo/serializers/FieldSerializer.java
Kryo 5 FieldSerialier: https://github.com/EsotericSoftware/kryo/blob/master/src/com/esotericsoftware/kryo/serializers/FieldSerializer.java

versions, according to maven central:

5.0.0-RC4 - Apr, 2019
5.0.0-RC3 - Apr, 2019
5.0.0-RC2 - Feb, 2019
5.0.0-RC1 - Jun, 2018

there is no "5.0.0" yet

TODO: why kryo-shaded artifact has been used so far?
https://javalibs.com/artifact/com.esotericsoftware/kryo-shaded
"This contains the shaded reflectasm jar to prevent conflicts with other versions of asm."


> Upgrade to Kryo5
> ----------------
>
>                 Key: HIVE-22944
>                 URL: https://issues.apache.org/jira/browse/HIVE-22944
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: László Bodor
>            Assignee: László Bodor
>            Priority: Major
>         Attachments: HIVE-22944.01.patch
>
>
> experimental ticket
> Maybe we should consider upgrading to kryo5 (plan ser/deser). Not sure about performance benefits, but looking at the code, e.g. FieldSerializer in Kryo5 seems to let us extend it easier (less private fields), which could be a benefit if we want to change its behavior, e.g. defining different logic for different fields of an object.
> Kryo 4 FieldSerializer: https://github.com/EsotericSoftware/kryo/blob/kryo-4/src/com/esotericsoftware/kryo/serializers/FieldSerializer.java
> Kryo 5 FieldSerialier: https://github.com/EsotericSoftware/kryo/blob/master/src/com/esotericsoftware/kryo/serializers/FieldSerializer.java
> versions, according to maven central:
> 5.0.0-RC4 - Apr, 2019
> 5.0.0-RC3 - Apr, 2019
> 5.0.0-RC2 - Feb, 2019
> 5.0.0-RC1 - Jun, 2018
> there is no "5.0.0" yet
> TODO: why kryo-shaded artifact has been used so far?
> https://javalibs.com/artifact/com.esotericsoftware/kryo-shaded
> "This contains the shaded reflectasm jar to prevent conflicts with other versions of asm."



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