[
https://issues.apache.org/jira/browse/HIVE-12175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14956961#comment-14956961
]
Prasanth Jayachandran commented on HIVE-12175:
----------------------------------------------
>From kryo Readme.md
"The 3.0.0 release fixes many reported issues and improves stability and
performance. The maven groupId is changed from com.esotericsoftware.kryo to
com.esotericsoftware. The Unsafe-based IO serialization format was changed and
is incompatible with previous versions (therefore the new major version), the
standard serialization format is still compatible."
We won't be using unsafe based serialization in most of the scenarios. It will
be much better for scenarios involving primitive arrays (vectorizedrowbatch?)
when row by row copy is replaced by unsafe memcopy (BATCH_SIZE * sizeof
primitive type). Plan serialization will still use the standard serialization
format which is compatible with 2.22.
> Upgrade Kryo version to 3.0.x
> -----------------------------
>
> Key: HIVE-12175
> URL: https://issues.apache.org/jira/browse/HIVE-12175
> Project: Hive
> Issue Type: Improvement
> Components: Serializers/Deserializers
> Affects Versions: 2.0.0
> Reporter: Prasanth Jayachandran
> Assignee: Prasanth Jayachandran
>
> Current version of kryo (2.22) has some issue (refer exception below and in
> HIVE-12174) with serializing ArrayLists generated using Arrays.asList(). We
> need to either replace all occurrences of Arrays.asList() or change the
> current StdInstantiatorStrategy. This issue is fixed in later versions and
> kryo community recommends using DefaultInstantiatorStrategy with fallback to
> StdInstantiatorStrategy. More discussion about this issue is here
> https://github.com/EsotericSoftware/kryo/issues/216. Alternatively, custom
> serilization/deserilization class can be provided for Arrays.asList.
> Also, kryo 3.0 introduced unsafe based serialization which claims to have
> much better performance for certain types of serialization.
> Exception:
> {code}
> Caused by: java.lang.NullPointerException
> at java.util.Arrays$ArrayList.size(Arrays.java:2847)
> at java.util.AbstractList.add(AbstractList.java:108)
> at
> org.apache.hive.com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:112)
> at
> org.apache.hive.com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:18)
> at
> org.apache.hive.com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:694)
> at
> org.apache.hive.com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106)
> ... 57 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)