Xianming Lei created SPARK-59403:
------------------------------------

             Summary: Allow empty serialized payloads for deserialized 
in-memory RDD blocks
                 Key: SPARK-59403
                 URL: https://issues.apache.org/jira/browse/SPARK-59403
             Project: Spark
          Issue Type: Bug
          Components: Spark Core
    Affects Versions: 4.1.3
            Reporter: Xianming Lei


Remote RDD block fetch currently treats a non-zero {{BlockStatus}} size 
together with a zero-byte response as an invalid block:

 

{{if (blockSize > 0 && buf.size() == 0)}}

This assumes that {{BlockStatus.memSize}} is the serialized payload size. That 
assumption is invalid for deserialized in-memory blocks.

For a deserialized block, {{memSize}} is Spark's estimated JVM heap footprint 
of the cached objects. An empty iterator can still occupy heap memory (for 
example, an empty array/object has object-header overhead), while its 
serialized network representation is legitimately zero bytes. Therefore, a 
remote fetch of an empty deserialized RDD partition is incorrectly rejected.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to