-
Notifications
You must be signed in to change notification settings - Fork 29.3k
[SPARK-52078][TEST] Add ZStandardTPCDSDataBenchmark #50857
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 8 commits
b93601f
2fcafbb
1d8b34c
4c2c253
c05ff1e
73c4fbb
46e3d9e
94d865a
c37bace
92d3a7f
279bf8a
28b9bee
85d9ff6
9df06f1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -66,8 +66,8 @@ jobs: | |
|
|
||
| # Any TPC-DS related updates on this job need to be applied to tpcds-1g job of build_and_test.yml as well | ||
| tpcds-1g-gen: | ||
| name: "Generate an input dataset for TPCDSQueryBenchmark with SF=1" | ||
| if: contains(inputs.class, 'TPCDSQueryBenchmark') || contains(inputs.class, '*') | ||
| name: "Generate an TPC-DS dataset with SF=1" | ||
| if: contains(inputs.class, 'TPCDSQueryBenchmark') || contains(inputs.class, 'ZStandardBenchmark') || contains(inputs.class, '*') | ||
| runs-on: ubuntu-latest | ||
| env: | ||
| SPARK_LOCAL_IP: localhost | ||
|
|
@@ -98,7 +98,9 @@ jobs: | |
| id: cache-tpcds-sf-1 | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ./tpcds-sf-1 | ||
| path: | | ||
| ./tpcds-sf-1 | ||
| ./tpcds-sf-1-text | ||
| key: tpcds-${{ hashFiles('.github/workflows/benchmark.yml', 'sql/core/src/test/scala/org/apache/spark/sql/TPCDSSchema.scala') }} | ||
| - name: Checkout tpcds-kit repository | ||
| if: steps.cache-tpcds-sf-1.outputs.cache-hit != 'true' | ||
|
|
@@ -118,7 +120,9 @@ jobs: | |
| java-version: ${{ inputs.jdk }} | ||
| - name: Generate TPC-DS (SF=1) table data | ||
| if: steps.cache-tpcds-sf-1.outputs.cache-hit != 'true' | ||
| run: build/sbt "sql/Test/runMain org.apache.spark.sql.GenTPCDSData --dsdgenDir `pwd`/tpcds-kit/tools --location `pwd`/tpcds-sf-1 --scaleFactor 1 --numPartitions 1 --overwrite" | ||
| run: | | ||
| # build/sbt "sql/Test/runMain org.apache.spark.sql.GenTPCDSData --dsdgenDir `pwd`/tpcds-kit/tools --location `pwd`/tpcds-sf-1 --scaleFactor 1 --numPartitions 1 --overwrite" | ||
|
pan3793 marked this conversation as resolved.
Outdated
|
||
| mkdir -p `pwd`/tpcds-sf-1-text && `pwd`/tpcds-kit/tools/dsdgen -DISTRIBUTIONS `pwd`/tpcds-kit/tools/tpcds.idx -SCALE 1 -DIR `pwd`/tpcds-sf-1-text | ||
|
|
||
| benchmark: | ||
| name: "Run benchmarks: ${{ inputs.class }} (JDK ${{ inputs.jdk }}, Scala ${{ inputs.scala }}, ${{ matrix.split }} out of ${{ inputs.num-splits }} splits)" | ||
|
|
@@ -138,6 +142,7 @@ jobs: | |
| # To prevent spark.test.home not being set. See more detail in SPARK-36007. | ||
| SPARK_HOME: ${{ github.workspace }} | ||
| SPARK_TPCDS_DATA: ${{ github.workspace }}/tpcds-sf-1 | ||
| SPARK_TPCDS_DATA_TEXT: ${{ github.workspace }}/tpcds-sf-1-text | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. the output data size
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @luben, in this round, I'm trying to use TPCDS-generated data for the zstd compression benchmark. The data can be generated by the following steps:
And my local test shows that zstd-jni 1.5.6 and 1.5.7 are basically at the same level, and 1.5.7 is a little bit faster in some cases. |
||
| steps: | ||
| - name: Checkout Spark repository | ||
| uses: actions/checkout@v4 | ||
|
|
@@ -167,11 +172,13 @@ jobs: | |
| distribution: zulu | ||
| java-version: ${{ inputs.jdk }} | ||
| - name: Cache TPC-DS generated data | ||
| if: contains(inputs.class, 'TPCDSQueryBenchmark') || contains(inputs.class, '*') | ||
| if: contains(inputs.class, 'TPCDSQueryBenchmark') || contains(inputs.class, 'ZStandardBenchmark') || contains(inputs.class, '*') | ||
| id: cache-tpcds-sf-1 | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ./tpcds-sf-1 | ||
| path: | | ||
| ./tpcds-sf-1 | ||
| ./tpcds-sf-1-text | ||
| key: tpcds-${{ hashFiles('.github/workflows/benchmark.yml', 'sql/core/src/test/scala/org/apache/spark/sql/TPCDSSchema.scala') }} | ||
| - name: Run benchmarks | ||
| run: | | ||
|
|
@@ -188,8 +195,8 @@ jobs: | |
| # To keep the directory structure and file permissions, tar them | ||
| # See also https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files | ||
| echo "Preparing the benchmark results:" | ||
| tar -cvf benchmark-results-${{ inputs.jdk }}-${{ inputs.scala }}.tar `git diff --name-only` `git ls-files --others --exclude=tpcds-sf-1 --exclude-standard` | ||
| - name: Upload benchmark results | ||
| tar -cvf benchmark-results-${{ inputs.jdk }}-${{ inputs.scala }}.tar `git diff --name-only` `git ls-files --others --exclude=tpcds-sf-1 --exclude=tpcds-sf-1-text --exclude-standard` | ||
| - name: Upload benchmark results` | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: benchmark-results-${{ inputs.jdk }}-${{ inputs.scala }}-${{ matrix.split }} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with the new testing approach, but is it possible to produce
tpcds-sf-1-textonly when conducting tests onZStandardBenchmark?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer to keep it to make the workflow definition simple, as it only takes a few seconds to generate the dataset