apache / apache/gluten

TPCDS q72 uses gluten calculation much worse than spark

Open
#8,417 23 comments 0 reactions 0 assignees View on GitHub
bug triage
Dominant language
Scala
Stars
1.6k
Forks
657
Avg merge
2d 14h
Merged PRs (30d)
80

Description

### Backend

VL (Velox)

### Bug description

When I used gluten to test tpcds, I found that the performance of q72 was much worse than the original spark when using gluten.The general situation is shown in the figure
![1180696f35c6cff274f711491](https://github.com/user-attachments/assets/7dfa23c4-93b9-421a-98fe-43480c7f535c)

== Physical Plan ==
VeloxColumnarToRowExec (111)
+- TakeOrderedAndProjectExecTransformer (110)
+- ^ RegularHashAggregateExecTransformer (108)
+- ^ InputIteratorTransformer (107)
+- ColumnarExchange (105)
+- VeloxAppendBatches (104)
+- ^ ProjectExecTransformer (102)
+- ^ FlushableHashAggregateExecTransformer (101)
+- ^ ProjectExecTransformer (100)
+- ^ ShuffledHashJoinExecTransformer LeftOuter BuildRight (99)
:- ^ InputIteratorTransformer (90)
: +- ColumnarExchange (88)
: +- VeloxAppendBatches (87)
: +- ^ ProjectExecTransformer (85)
: +- ^ BroadcastHashJoinExecTransformer LeftOuter BuildRight (84)
: :- ^ ProjectExecTransformer (77)
: : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (76)
: : :- ^ ProjectExecTransformer (69)
: : : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (68)
: : : :- ^ ProjectExecTransformer (61)
: : : : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (60)
: : : : :- ^ ProjectExecTransformer (52)
: : : : : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (51)
: : : : : :- ^ ProjectExecTransformer (43)
: : : : : : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (42)
: : : : : : :- ^ ProjectExecTransformer (34)
: : : : : : : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (33)
: : : : : : : :- ^ ProjectExecTransformer (26)
: : : : : : : : +- ^ BroadcastHashJoinExecTransformer Inner BuildRight (25)
: : : : : : : : :- ^ ProjectExecTransformer (18)
: : : : : : : : : +- ^ ShuffledHashJoinExecTransformer Inner BuildRight (17)
: : : : : : : : : :- ^ InputIteratorTransformer (8)
: : : : : : : : : : +- ColumnarExchange (6)
: : : : : : : : : : +- VeloxAppendBatches (5)
: : : : : : : : : : +- ^ ProjectExecTransformer (3)
: : : : : : : : : : +- ^ FilterExecTransformer (2)
: : : : : : : : : : +- ^ Scan orc tpc_ds_5000.catalog_sales (1)
: : : : : : : : : +- ^ InputIteratorTransformer (16)
: : : : : : : : : +- ColumnarExchange (14)
: : : : : : : : : +- VeloxAppendBatches (13)
: : : : : : : : : +- ^ ProjectExecTransformer (11)
: : : : : : : : : +- ^ FilterExecTransformer (10)
: : : : : : : : : +- ^ Scan orc tpc_ds_5000.inventory (9)
: : : : : : : : +- ^ InputIteratorTransformer (24)
: : : : : : : : +- ColumnarBroadcastExchange (22)
: : : : : : : : +- ^ FilterExecTransformer (20)
: : : : : : : : +- ^ Scan orc tpc_ds_5000.warehouse (19)
: : : : : : : +- ^ InputIteratorTransformer (32)
: : : : : : : +- ColumnarBroadcastExchange (30)
: : : : : : : +- ^ FilterExecTransformer (28)
: : : : : : : +- ^ Scan orc tpc_ds_5000.item (27)
: : : : : : +- ^ InputIteratorTransformer (41)
: : : : : : +- ColumnarBroadcastExchange (39)
: : : : : : +- ^ ProjectExecTransformer (37)
: : : : : : +- ^ FilterExecTransformer (36)
: : : : : : +- ^ Scan orc tpc_ds_5000.customer_demographics (35)
: : : : : +- ^ InputIteratorTransformer (50)
: : : : : +- ColumnarBroadcastExchange (48)
: : : : : +- ^ ProjectExecTransformer (46)
: : : : : +- ^ FilterExecTransformer (45)
: : : : : +- ^ Scan orc tpc_ds_5000.household_demographics (44)
: : : : +- ^ InputIteratorTransformer (59)
: : : : +- ColumnarBroadcastExchange (57)
: : : : +- ^ ProjectExecTransformer (55)
: : : : +- ^ FilterExecTransformer (54)
: : : : +- ^ Scan orc tpc_ds_5000.date_dim (53)
: : : +- ^ InputIteratorTransformer (67)
: : : +- ColumnarBroadcastExchange (65)
: : : +- ^ FilterExecTransformer (63)
: : : +- ^ Scan orc tpc_ds_5000.date_dim (62)
: : +- ^ InputIteratorTransformer (75)
: : +- ColumnarBroadcastExchange (73)
: : +- ^ FilterExecTransformer (71)
: : +- ^ Scan orc tpc_ds_5000.date_dim (70)
: +- ^ InputIteratorTransformer (83)
: +- ColumnarBroadcastExchange (81)
: +- ^ FilterExecTransformer (79)
: +- ^ Scan orc tpc_ds_5000.promotion (78)
+- ^ InputIteratorTransformer (98)
+- ColumnarExchange (96)
+- VeloxAppendBatches (95)
+- ^ ProjectExecTransformer (93)
+- ^ FilterExecTransformer (92)
+- ^ Scan orc tpc_ds_5000.catalog_returns (91)

===== Subqueries =====

Subquery:1 Hosting operator id = 1 Hosting Expression = cs_sold_date_sk#42 IN dynamicpruning#317
ColumnarBroadcastExchange (116)
+- ^ ProjectExecTransformer (114)
+- ^ FilterExecTransformer (113)
+- ^ Scan orc tpc_ds_5000.date_dim (112)

DAG:
![application-1734664011273-0151](https://github.com/user-attachments/assets/fbb0cbda-5d5a-49be-a01c-1c6d8151427f)

### Spark version

Spark-3.2.x

### Spark configurations

bin/spark-sql \
--name run_gluten_sql \
--master yarn \
--deploy-mode client \
--executor-memory 20g \
--driver-memory 3g \
--num-executors 10 \
--executor-cores 5 \
--conf spark.yarn.appMasterEnv.JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64 \
--conf spark.executorEnv.JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64 \
--conf spark.driver.extraClassPath=/home/hdfs/gluten/gluten-velox-bundle-spark3.2_2.12-centos_7_x86_64-1.2.0.jar \
--conf spark.executor.extraClassPath=/home/hdfs/gluten/gluten-velox-bundle-spark3.2_2.12-centos_7_x86_64-1.2.0.jar \
--conf spark.plugins=org.apache.gluten.GlutenPlugin \
--conf spark.memory.offHeap.enabled=true \
--conf spark.memory.offHeap.size=10g \
--conf spark.shuffle.useOldFetchProtocol=true \
--conf spark.network.timeout=800 \
--conf spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
--conf spark.shuffle.service.enabled=false \
--conf spark.sql.adaptive.enabled=false \
--conf spark.gluten.sql.debug=true

### System information

_No response_

### Relevant logs

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.