You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Zuo Dao (Jira)" <ji...@apache.org> on 2020/06/27 02:49:00 UTC

[jira] [Updated] (SPARK-32104) Avoid full outer join OOM on skewed dataset

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

Zuo Dao updated SPARK-32104:
----------------------------
    Description: 
SPARK-24985 changed {{SortMergeJoinExec}} to use {{ExternalAppendOnlyUnsafeRowArray}} on {{SortMergeFullOuterJoinScanner}}.

But its performance is very poor, because when matching the key, you need to constantly get the element at the specified position according to the index.


This PR add a {{FileBasedAppendOnlyUnsafeRowArray}}.

It can quickly locate the corresponding data according to the given index because of the offsets array in memory.

And in memory buffer rows can be limited by {{spark.sql.sortMergeJoinExec.buffer.in.memory.threshold}}.

> Avoid full outer join OOM on skewed dataset
> -------------------------------------------
>
>                 Key: SPARK-32104
>                 URL: https://issues.apache.org/jira/browse/SPARK-32104
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 2.3.1, 2.4.6, 3.0.0
>            Reporter: Zuo Dao
>            Priority: Minor
>
> SPARK-24985 changed {{SortMergeJoinExec}} to use {{ExternalAppendOnlyUnsafeRowArray}} on {{SortMergeFullOuterJoinScanner}}.
> But its performance is very poor, because when matching the key, you need to constantly get the element at the specified position according to the index.
> This PR add a {{FileBasedAppendOnlyUnsafeRowArray}}.
> It can quickly locate the corresponding data according to the given index because of the offsets array in memory.
> And in memory buffer rows can be limited by {{spark.sql.sortMergeJoinExec.buffer.in.memory.threshold}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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