[ 
https://issues.apache.org/jira/browse/SPARK-4550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14372232#comment-14372232
 ] 

Sandy Ryza commented on SPARK-4550:
-----------------------------------

I spoke briefly with Reynold about this offline, and he pointed out that, with 
the patch, we now flush the Kryo serialization stream after every object we 
write.  I put together a micro-benchmark to stress this that writes a bunch of 
small records to a Kryo serialization stream with and without flushing:

runs without flush: (count: 30, mean: 226.400000, stdev: 3.929377, max: 
241.000000, min: 222.000000)
runs with flush: (count: 30, mean: 226.300000, stdev: 2.084067, max: 
234.000000, min: 224.000000)

There doesn't appear to be a significant difference.  The benchmark code is 
attached.


> In sort-based shuffle, store map outputs in serialized form
> -----------------------------------------------------------
>
>                 Key: SPARK-4550
>                 URL: https://issues.apache.org/jira/browse/SPARK-4550
>             Project: Spark
>          Issue Type: Improvement
>          Components: Shuffle, Spark Core
>    Affects Versions: 1.2.0
>            Reporter: Sandy Ryza
>            Assignee: Sandy Ryza
>            Priority: Critical
>         Attachments: SPARK-4550-design-v1.pdf
>
>
> One drawback with sort-based shuffle compared to hash-based shuffle is that 
> it ends up storing many more java objects in memory.  If Spark could store 
> map outputs in serialized form, it could
> * spill less often because the serialized form is more compact
> * reduce GC pressure
> This will only work when the serialized representations of objects are 
> independent from each other and occupy contiguous segments of memory.  E.g. 
> when Kryo reference tracking is left on, objects may contain pointers to 
> objects farther back in the stream, which means that the sort can't relocate 
> objects without corrupting them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to