You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "liupengcheng (JIRA)" <ji...@apache.org> on 2018/08/28 01:49:00 UTC

[jira] [Created] (SPARK-25258) Upgrade kryo package to version 4.0.2+

liupengcheng created SPARK-25258:
------------------------------------

             Summary: Upgrade kryo package to version 4.0.2+
                 Key: SPARK-25258
                 URL: https://issues.apache.org/jira/browse/SPARK-25258
             Project: Spark
          Issue Type: Wish
          Components: Spark Core
    Affects Versions: 2.3.1, 2.1.0
            Reporter: liupengcheng


Recently, we encountered a kryo performance issue in spark2.1.0, and the issue affect all kryo below 4.0.2, so it seems that all spark version might encounter this issue.

Issue description:

In shuffle write phase or some spilling operation, spark will use kryo serializer to serialize data if `spark.serializer` is set to `KryoSerializer`, however, when data contains some extremely large records, kryoSerializer's MapReferenceResolver would be expand, and it's `reset` method will take a long time to reset all items in writtenObjects table to null.

com.esotericsoftware.kryo.util.MapReferenceResolver
{code:java}
public void reset () {
 readObjects.clear();
 writtenObjects.clear();
}

public void clear () {
 K[] keyTable = this.keyTable;
 for (int i = capacity + stashSize; i-- > 0;)
  keyTable[i] = null;
 size = 0;
 stashSize = 0;
}
{code}
I checked the kryo project in github, and this issue seems fixed in 4.0.2+

[https://github.com/EsotericSoftware/kryo/commit/77935c696ee4976963aa5c6ac53d53d9b40b8bdd#diff-215fa9846e1e4e54bbeede0500de1e28]

 

I was wondering if we can make spark kryo package upgrade to 4.0.2+ to fix this problem.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org