Skip to content

[SPARK-55520][TESTS] Regenerate benchmark results - #54313

Closed
dongjoon-hyun wants to merge 1 commit into
apache:masterfrom
dongjoon-hyun:SPARK-55520
Closed

[SPARK-55520][TESTS] Regenerate benchmark results#54313
dongjoon-hyun wants to merge 1 commit into
apache:masterfrom
dongjoon-hyun:SPARK-55520

Conversation

@dongjoon-hyun

@dongjoon-hyundongjoon-hyun commented Feb 13, 2026

Copy link
Copy Markdown
Member

What changes were proposed in this pull request?

This PR aims to regenerate benchmark results to check the intermediate status as a part of Apache Spark 4.2.0 preparation.

Please note that V2FunctionBenchmark is excluded because it's broken due to NumericEvalContext.evalMode() error currently. It's good to identify this kind of bug as early as possible via this PR.

Why are the changes needed?

Apache Spark 4.2.0 introduced many improvements on top of the key dependency differences from Spark 4.1.0:

We updated the benchmark result 4 months ago. So, it's time to make them up-to-date with our actual code and the current infra.

- OpenJDK 64-Bit Server VM 17.0.16+8-LTS on Linux 6.11.0-1018-azure
+ OpenJDK 64-Bit Server VM 17.0.18+8-LTS on Linux 6.14.0-1017-azure
- OpenJDK 64-Bit Server VM 21.0.8+9-LTS on Linux 6.11.0-1018-azure
+ OpenJDK 64-Bit Server VM 21.0.10+7-LTS on Linux 6.14.0-1017-azure

Does this PR introduce any user-facing change?

No. This is a change on benchmark result files.

How was this patch tested?

Manual review.

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

No.

ZooKeeperPersistenceEngine with JavaSerializer 66386863209 0.0 6637519.7 1.0X
FileSystemPersistenceEngine with JavaSerializer 3161316811 0.0 3160685.62.1X
FileSystemPersistenceEngine with JavaSerializer (lz4) 87389933 0.0 873026.87.6X
FileSystemPersistenceEngine with JavaSerializer (lzf) 3286 3302 16 0.0 3286382.2 2.0X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This could be a regression to take a look at. Java 17 and 21 are the same.

Indexed 11 12 0 0.1 10698.4 1.0X
No Index 8 8 00.1 7430.81.4X
Indexed 12 12 0 0.1 11413.1 1.0X
No Index 13 14 1 0.1 12820.20.9X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This could be a regression because the ratio is reverted. However, Java 17 result looks fine.

Indexed 11 12 0 0.1 10694.7 1.0X
No Index 8 80 0.1 7443.81.4X
Indexed 12 12 0 0.1 11461.0 1.0X
No Index 13 14 0 0.1 12881.50.9X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ditto. The ratio is reverted but Java 17 result looks fine.

Compression 10000 times at level 1 without buffer pool 6486536 0.064756.8 1.0X
Compression 10000 times at level 2 without buffer pool 6886881 0.0 68788.7 0.9X
Compression 10000 times at level 3 without buffer pool 80481010 0.0 80354.7 0.8X
Compression 10000 times at level 1 with buffer pool 5805822 0.0 58024.51.1X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

These are expected improvement due to buffer pool.

Decompression 10000 times from level 1 without buffer pool 5955973 0.059453.4 1.0X
Decompression 10000 times from level 2 without buffer pool 5945951 0.059429.2 1.0X
Decompression 10000 times from level 3 without buffer pool 5955961 0.059501.2 1.0X
Decompression 10000 times from level 1 with buffer pool 542543 1 0.0 54194.01.1X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

ditto. These are expected improvement due to buffer pool.

------------------------------------------------------------------------------------------------------------------------
Use HashSet 1 1 0 1530.20.7 1.0X
Use EnumSet 2 2 0 461.22.2 0.3X
Use HashSet 1 1 0 761.61.3 1.0X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

HashSet seems to be improved by 2x in both Java 17 and 21.

Murmur3_x86_32 3535360.616.5 1.0X
xxHash 64-bit 2828 0 76.013.2 1.3X
HiveHasher 4444 0 48.120.8 0.8X
Murmur3_x86_32 2626079.412.6 1.0X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The ratio is changed because Murmur3_x86_32 is improved .

Spark 349735014 0.3 3497.4 1.4X
Spark Binary 263726392 0.4 2637.2 1.8X
Common Codecs 4987499912 0.2 4986.8 1.0X
Java 40374040 40.2 4036.71.2X

@dongjoon-hyundongjoon-hyunFeb 13, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The ratio is reverted because Java 21 becomes faster. Like Java 17, this should be the fastest one.

LongDelta 6526520102.9 9.7 1.2X
PassThrough 837837180.212.5 1.0X
RunLengthEncoding 12311231 0 54.5 18.3 0.7X
DictionaryEncoding 729730292.1 10.91.1X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The ratio of DictionaryEncoding is changed.

Test read with LongType: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
ConstantColumnVector 183918402222.74.5 1.0X
OnHeapColumnVector 000 1580533.50.0 7096.3X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Previous value 0 looks wrong to me.

ParquetReader Vectorized: DataPageV1 1671714 94.0 10.6 1.0X
ParquetReader Vectorized: DataPageV2 193197 2 81.5 12.3 0.9X
ParquetReader Vectorized -> Row: DataPageV1 171179892.1 10.9 1.0X
ParquetReader Vectorized -> Row: DataPageV2 203204277.612.90.8X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This becomes slower slightly.

ParquetReader Vectorized: DataPageV1 151153 1 103.9 9.6 1.0X
ParquetReader Vectorized: DataPageV2 156158 2 100.7 9.9 1.0X
ParquetReader Vectorized -> Row: DataPageV1 162163 1 97.210.3 0.9X
ParquetReader Vectorized -> Row: DataPageV2 1621632 97.1 10.30.9X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The ratio is reverted.

SQL Parquet Vectorized: DataPageV2 147614794 7.1140.84.9X
SQL Parquet MR: DataPageV1 3564358226 2.9339.9 2.0X
SQL Parquet MR: DataPageV2 3578358592.9341.2 2.0X
ParquetReader Vectorized: DataPageV1 879886711.983.8 8.3X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Previously, this was the fastest but now becomes slower relatively than SQL ORC Vectorized somehow.

50 ints (non-compact): Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
In expression 99 100 1 100.7 9.9 1.0X
InSet expression 132 136 7 75.9 13.2 0.8X
In expression 156 158 3 64.0 15.6 1.0X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

In becomes slower relatively, but it could be due to different GitHub Action CPUs.

First 10 integers using SELECT and LIMIT 69 74 6 0.0 6947861.5 2.1X
First 10 integers referencing external table in anchor 137 152 14 0.0 13678740.6 1.1X
First 10 integers using VALUES 162 180 18 0.0 16176649.5 1.0X
First 10 integers using SELECT 147 157 9 0.0 14653403.4 1.1X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

This becomes slower relatively and consistently.

long/nullable int/string to primitive wholestage off 3637 1 2.8362.6 1.0X
long/nullable int/string to primitive wholestage on 29322 3.5285.8 1.3X
long/nullable int/string to primitive wholestage off 3232 1 3.2315.9 1.0X
long/nullable int/string to primitive wholestage on 32386 3.1317.6 1.0X

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The value is too small to say there is a difference.

@dongjoon-hyun

Copy link
Copy Markdown
MemberAuthor

The audit is finished. Could you review this PR, @peter-toth ?

@dongjoon-hyun

Copy link
Copy Markdown
MemberAuthor

Thank you, @peter-toth . SPARK-55519 V2FunctionBenchmark is broken and the further investigation will follow later independently.

Merged to master.

@dongjoon-hyun
dongjoon-hyun deleted the SPARK-55520 branch February 13, 2026 19:41
rpnkv pushed a commit to rpnkv/spark that referenced this pull request Feb 18, 2026
### What changes were proposed in this pull request?
This PR aims to regenerate benchmark results to check the intermediate status as a part of Apache Spark 4.2.0 preparation.
Please note that `V2FunctionBenchmark` is excluded because it's broken due to `NumericEvalContext.evalMode()` error currently. It's good to identify this kind of bug as early as possible via this PR.
- [SPARK-55519 `V2FunctionBenchmark` is broken](https://issues.apache.org/jira/browse/SPARK-55519)
### Why are the changes needed?
Apache Spark 4.2.0 introduced many improvements on top of the key dependency differences from Spark 4.1.0:
- apache#53396
- apache#53582
- apache#53347
- apache#54233
- apache#54292
We updated the benchmark result 4 months ago. So, it's time to make them up-to-date with our actual code and the current infra.
- apache#52600
```
- OpenJDK 64-Bit Server VM 17.0.16+8-LTS on Linux 6.11.0-1018-azure
+ OpenJDK 64-Bit Server VM 17.0.18+8-LTS on Linux 6.14.0-1017-azure
```
```
- OpenJDK 64-Bit Server VM 21.0.8+9-LTS on Linux 6.11.0-1018-azure
+ OpenJDK 64-Bit Server VM 21.0.10+7-LTS on Linux 6.14.0-1017-azure
```
### Does this PR introduce _any_ user-facing change?
No. This is a change on benchmark result files.
### How was this patch tested?
Manual review.
### Was this patch authored or co-authored using generative AI tooling?
No.
Closesapache#54313 from dongjoon-hyun/SPARK-55520.
Lead-authored-by: Dongjoon Hyun <dongjoon@apache.org>
Co-authored-by: dongjoon-hyun <dongjoon-hyun@users.noreply.github.com>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
dongjoon-hyun added a commit that referenced this pull request Jul 29, 2026
### What changes were proposed in this pull request?
This PR aims to regenerate benchmark results to check the intermediate status as a part of Apache Spark 5.0.0 preparation
### Why are the changes needed?
To make the benchmark up-to-date and fill the missing gaps in order to help the comparison with the upcoming Apache Spark 4.3.0.
**1. Last Update (2026-02-13)**
- #54313
**2. Java Version Changes**
```
- OpenJDK 64-Bit Server VM 21.0.10+7-LTS on Linux 6.14.0-1017-azure
+ OpenJDK 64-Bit Server VM 21.0.12+8-LTS on Linux 6.17.0-1020-azure
```
```
- OpenJDK 64-Bit Server VM 21.0.10+7-LTS on Linux 6.14.0-1017-azure
+ OpenJDK 64-Bit Server VM 21.0.12+8-LTS on Linux 6.17.0-1020-azure
```
```
- OpenJDK 64-Bit Server VM 25.0.2+10-LTS on Linux 6.17.0-1008-azure
+ OpenJDK 64-Bit Server VM 25.0.4+7-LTS on Linux 6.17.0-1020-azure
```
**3. MISSING BENCHMARK RESULT**
- #55278 didn't generate the benchmark result at all.
- #56291 didn't generate Java 21 and 25 result.
- #56291 didn't generate Java 21 and 25 result.
- #56485 didn't generate Java 21 and 25 result.
- #57232 didn't generate Java 21 and 25 result.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
Manual review.
### Was this patch authored or co-authored using generative AI tooling?
No.
Closes#57620 from dongjoon-hyun/SPARK-58415.
Authored-by: Dongjoon Hyun <dongjoon@apache.org>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@dongjoon-hyun@peter-toth