You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Reynold Xin (JIRA)" <ji...@apache.org> on 2014/07/14 08:41:04 UTC

[jira] [Created] (SPARK-2468) zero-copy shuffle network communication

Reynold Xin created SPARK-2468:
----------------------------------

             Summary: zero-copy shuffle network communication
                 Key: SPARK-2468
                 URL: https://issues.apache.org/jira/browse/SPARK-2468
             Project: Spark
          Issue Type: Improvement
          Components: Spark Core
            Reporter: Reynold Xin
            Assignee: Reynold Xin
            Priority: Critical


Right now shuffle send goes through the block manager. This is inefficient because it requires loading a block from disk into a kernel buffer, then into a user space buffer, and then back to a kernel send buffer before it reaches the NIC. It does multiple copies of the data and context switching between kernel/user. It also creates unnecessary buffer in the JVM that increases GC

Instead, we should use FileChannel.transferTo, which handles this in the kernel space with zero-copy. See http://www.ibm.com/developerworks/library/j-zerocopy/

One potential solution is to use Netty NIO.






--
This message was sent by Atlassian JIRA
(v6.2#6252)