Remove obsolete benchmarks and timing-only unit tests - #19538
Merged
xiangfu0 merged 2 commits intoSep 14, 2026
Merged
Conversation
Remove timing-only interner and retention tests and the disabled vector benchmark class. Preserve functional assertions, remove the HDFS deletion timing threshold, and give the ANY_VALUE test a correctness-focused name. How to reproduce: On the parent revision, run FALFInternerTest#benchmarkingTest through ./mvnw -pl pinot-common -am -Dsurefire.failIfNoSpecifiedTests=false test with -Dtest=FALFInternerTest#benchmarkingTest. It runs about 737 million interning calls and prints timings without checking correctness. Validation: 136 focused tests passed on JDK 25. Spotless, Checkstyle, and license checks passed. Isolated lint passed for all modified test classes.
Drop ten retired experiments or invalid/duplicate harnesses, their obsolete launchers, unused LazyDataList, and three unregistered off-heap map methods. Keep current workload benchmarks and document their entry points. The removed standalone runners include a dictionary test that reloads its deleted segment, a memory test that never initializes its memory manager, and index-size comparisons based on stale v1 file paths or empty offsets. The removed SUM workload is covered by the retained SUM/SUMINT benchmark. Validation: all four style/license checks passed for pinot-perf; the 64-module reactor package build passed. JMH discovers 302 retained methods, all 16 launchers resolve, and forked SUM/dictionary lookup smoke runs pass.
xiangfu0
requested review from
Jackie-Jiang and
yashmayya
and removed request for
Jackie-Jiang
September 12, 2026 22:01
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #19538 +/- ##
============================================
+ Coverage 67.72% 67.73% +0.01%
Complexity 1450 1450
============================================
Files 3490 3490
Lines 225032 225032
Branches 35527 35527
============================================
+ Hits 152393 152418 +25
+ Misses 60612 60580 -32
- Partials 12027 12034 +7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Jackie-Jiang
approved these changes
Sep 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The benchmark module contains duplicate workloads, retired implementation experiments, and standalone runners that no longer produce useful measurements. Normal unit-test runs also include an ad hoc interner benchmark with about 737 million calls and a 400,000-segment retention test that only checks elapsed time.
Remove 10 obsolete benchmark classes, the unused
LazyDataListhelper, three unregistered off-heap ID-map methods, and five obsolete launcher entries. Add a README guide pointing to current workload benchmarks. Production behavior is unchanged.Benchmark removals
BenchmarkSumQuerySumIntAggregationFunctionBenchmark, which also compares SUMINT.StringDictionaryPerfTestRawIndexBenchmarkForwardIndexWriterBenchmarkBenchmarkOffHeapDictionaryMemoryBenchmarkQueryEngineBenchmarkRoaringBitmapCreationBenchmarkRoaringBitmapMappingBenchmarkJsonKeyMapBenchmarkGroovyExpressionEvaluationKeep benchmarks for current query, index, dictionary, aggregation, JSON/MAP, ingestion, resource-accounting, and vector paths, including meaningful implementation and algorithm baselines. The removed experiments do not all have one-to-one replacements; current workload coverage remains.
Unit-test cleanup
VectorSearchBenchmark.ANY_VALUEtest to describe its correctness coverage, and make the interner helper always assert equality.The remaining correctness-test datasets and assertions are unchanged.
How to reproduce
On the base revision, run the interner benchmark through the normal unit-test runner:
The selected method repeatedly interns values and prints timings without checking correctness. The cleanup removes that method while retaining
testInterningByteBuffersand its assertions. The retention benchmark similarly checks only a 30-second threshold; existing retention tests continue to verify tracked-segment exclusion and deletion candidates.Validation
Using JDK 25, 136 focused tests passed with no failures, errors, or skips:
./mvnw -pl pinot-common,pinot-core,pinot-controller,pinot-segment-local,pinot-plugins/pinot-file-system/pinot-hdfs -am \ -Dtest=FALFInternerTest,RetentionManagerTest,AnyValueAggregationFunctionTest,HadoopPinotFSTest,IvfFlatVectorIndexTest,IvfFlatFilterAwareTest,ScalarQuantizerTest \ -Dsurefire.failIfNoSpecifiedTests=false testSpotless, Checkstyle, license formatting, and license validation passed for all five affected modules. Isolated
javac -Xlint:allchecks passed for all four modified test classes with no warnings on added lines. The additional reactor build with expanded deprecation checking hit the existing missing JetBrainsNotNullannotation dependency in unchangedZstandardDecompressor; the normal reactor build and tests passed.For the benchmark module, all four style/license checks passed. The complete 64-module reactor package build passed:
JMH discovery from the generated package lists 302 retained benchmark methods; removed benchmarks are absent. All 16 generated launcher scripts reference existing classes, and the five retired launchers are absent.
Forked smoke runs passed for the retained SUM and dictionary-lookup workloads. These runs validate execution only: