Skip to content

[VL] Split CI spark unit tests and TPC-DS random-kill job across parallel runners - #12624

Merged
zhouyuan merged 2 commits into
apache:mainfrom
zhouyuan:wip_test_split_tests
Jul 27, 2026
Merged

[VL] Split CI spark unit tests and TPC-DS random-kill job across parallel runners#12624
zhouyuan merged 2 commits into
apache:mainfrom
zhouyuan:wip_test_split_tests

Conversation

@zhouyuan

@zhouyuan zhouyuan commented Jul 24, 2026

Copy link
Copy Markdown
Member

What changes are proposed in this pull request?

The Spark unit test jobs (spark-3.4 through spark-4.1) and the TPC-DS
random-kill job were running on a single runner each, taking up to ~2 hours
per job. With this patch the longest task would take ~1hour.

Changes:

  • Split spark unit tests for spark34/spark35/spark35-scala213/spark40/spark41
    into 3 parallel runner groups using matrix strategy, partitioned by package
    prefix via -DwildcardSuites:
    • Group 1: org.apache.spark.sql.streaming, org.apache.spark.GlutenSortShuffleSuite,
      org.apache.gluten
    • Group 2: org.apache.spark.sql.execution, org.apache.spark.sql.catalyst,
      org.apache.spark.sql.errors, org.apache.spark.sql.extension
    • Group 3: org.apache.spark.sql.GlutenSQL*, org.apache.spark.sql.connector,
      org.apache.spark.sql.sources, org.apache.spark.sql.hive,
      org.apache.spark.sql.gluten, org.apache.spark.sql.shim
  • Split the slow-test jobs (extended + hive) for each spark version into 2
    parallel runners.
  • Split tpc-test-ubuntu-randomkill into 3 parallel runners using the built-in
    --shard=N/M option in gluten-it, each runner handling ~33 of the 99 TPC-DS
    queries.
  • fix DynamicOffHeapSizing feature to allow to run in different JVM context

Note: scalatest-maven-plugin uses -DwildcardSuites (not -Dtest) for suite
selection via package prefix.

How was this patch tested?

pass GHA

Was this patch authored or co-authored using generative AI tooling?

@github-actions github-actions Bot added the INFRA label Jul 24, 2026
@zhouyuan
zhouyuan force-pushed the wip_test_split_tests branch 2 times, most recently from f72bb33 to 2fbc2ba Compare July 26, 2026 02:40
@github-actions github-actions Bot added the VELOX label Jul 27, 2026
@zhouyuan
zhouyuan marked this pull request as ready for review July 27, 2026 08:29
Copilot AI review requested due to automatic review settings July 27, 2026 08:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings July 27, 2026 10:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@zhouyuan zhouyuan changed the title [VL] Parallel run tests to speed up [VL] Parallel run tests to speed up CI Jul 27, 2026
…llel runners

The Spark unit test jobs (spark-3.4 through spark-4.1) and the TPC-DS
random-kill job were running on a single runner each, taking up to ~2 hours
per job.

Changes:
- Split spark unit tests for spark34/spark35/spark35-scala213/spark40/spark41
  into 3 parallel runner groups using matrix strategy, partitioned by package
  prefix via -DwildcardSuites:
    - Group 1: org.apache.spark.sql.streaming, org.apache.spark.GlutenSortShuffleSuite,
               org.apache.gluten
    - Group 2: org.apache.spark.sql.execution, org.apache.spark.sql.catalyst,
               org.apache.spark.sql.errors, org.apache.spark.sql.extension
    - Group 3: org.apache.spark.sql.GlutenSQL*, org.apache.spark.sql.connector,
               org.apache.spark.sql.sources, org.apache.spark.sql.hive,
               org.apache.spark.sql.gluten, org.apache.spark.sql.shim
- Split the slow-test jobs (extended + hive) for each spark version into 2
  parallel runners.
- Split tpc-test-ubuntu-randomkill into 3 parallel runners using the built-in
  --shard=N/M option in gluten-it, each runner handling ~33 of the 99 TPC-DS
  queries.
- Increase executor memory in DynamicOffHeapSizingSuite to reduce flakiness.

Note: scalatest-maven-plugin uses -DwildcardSuites (not -Dtest) for suite
selection via package prefix.

Signed-off-by: Yuan <yuanzhou@apache.org>

@zhztheplayer zhztheplayer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Signed-off-by: Yuan <yuanzhou@apache.org>
Copilot AI review requested due to automatic review settings July 27, 2026 13:19
@zhouyuan
zhouyuan force-pushed the wip_test_split_tests branch from 33f8f41 to ee59b2b Compare July 27, 2026 13:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added CORE works for Gluten Core and removed VELOX labels Jul 27, 2026
@github-actions

Copy link
Copy Markdown

Run Gluten Clickhouse CI on x86

@zhouyuan zhouyuan changed the title [VL] Parallel run tests to speed up CI [VL] Split CI spark unit tests and TPC-DS random-kill job across parallel runners Jul 27, 2026
@zhouyuan
zhouyuan merged commit 1e4e9f3 into apache:main Jul 27, 2026
134 of 135 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CORE works for Gluten Core INFRA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants