[ 
https://issues.apache.org/jira/browse/SPARK-20994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

jin xing updated SPARK-20994:
-----------------------------
    Description: 
In my cluster, we are suffering from OOM of shuffle-service.
We found that a lot of executors are fetching blocks from a single 
shuffle-service. Analyzing the memory, we found that the 
blockIds({{shuffle_shuffleId_mapId_reduceId}}) takes about 1.5GBytes.

In current code, chunks are fetched from shuffle service in two steps:
Step-1. Send {{OpenBlocks}}, which contains the blocks list to to fetch;
Step-2. Fetch the consecutive chunks from shuffle-service by {{streamId}} and 
{{chunkIndex}}

Thus memory cost can be improved for step-1.

  was:
In my cluster, we are suffering from OOM of shuffle-service.
We found that a lot of executors are fetching blocks from a single 
shuffle-service. Analyzing the memory, we found that the 
blockIds({{shuffle_shuffleId_mapId_reduceId}}) takes about 1.5GBytes.

In current code, chunks are fetched from shuffle service in two steps:
Step-1. Send {{OpenBlocks}}, which contains the blocks list to to fetch;
Step-2. Fetch the consecutive chunks from shuffle-service by {{streamId}} and 
{{chunkIndex}}

Conceptually, there is no need to send the blocks list in step-1. Client can 
send the blockId in Step-2. Receiving {{ChunkFetchRequest}}, server can check 
if the chunkId is in local block manager and send back response. 
Thus memory cost can be improved.


> Alleviate memory pressure in StreamManager
> ------------------------------------------
>
>                 Key: SPARK-20994
>                 URL: https://issues.apache.org/jira/browse/SPARK-20994
>             Project: Spark
>          Issue Type: Improvement
>          Components: Spark Core
>    Affects Versions: 2.1.1
>            Reporter: jin xing
>
> In my cluster, we are suffering from OOM of shuffle-service.
> We found that a lot of executors are fetching blocks from a single 
> shuffle-service. Analyzing the memory, we found that the 
> blockIds({{shuffle_shuffleId_mapId_reduceId}}) takes about 1.5GBytes.
> In current code, chunks are fetched from shuffle service in two steps:
> Step-1. Send {{OpenBlocks}}, which contains the blocks list to to fetch;
> Step-2. Fetch the consecutive chunks from shuffle-service by {{streamId}} and 
> {{chunkIndex}}
> Thus memory cost can be improved for step-1.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to