xiangfu0 opened a new pull request, #20109: URL: https://github.com/apache/pinot/pull/20109
Share a default one-server cluster between `SegmentWriterUploaderIntegrationTest` and `SegmentUploadIntegrationTest`, removing one JVM/cluster lifecycle from their four tests. This follows #20084 and keeps both classes in CI lane 2-b. The four test bodies and assertions are unchanged. Each class retains its table/schema/index hooks and data directories. Cleanup waits for server table managers, Helix external views, and broker routing to disappear; schemas remain alive across methods until class teardown. Direct class selection still starts and stops its own fixture. ### Measured local test time Two before/after comparisons on the final source, run sequentially in baseline/shared/shared/baseline order: | Pair | Separate classes | Shared suite | Observed reduction | ZK startup retries, before / after | | --- | ---: | ---: | ---: | ---: | | 1 | 150.537 s | 63.767 s | 86.770 s (57.6%) | 2 / 0 | | 2 | 108.800 s | 80.671 s | 28.129 s (25.9%) | 1 / 1 | These are elapsed times for the four affected tests' Surefire goal, including forks and fixture setup/teardown, not sums of nested XML suite durations. All runs passed 4/4 without skips or test retries. Baseline is `eca9ea7afde8c746bda0f2427ac1a4cc4101ef00`; environment was JDK 25, JaCoCo 0.8.16, the same dependency bytes, 1–4 GiB test heap, and `ActiveProcessorCount=2` on an Intel i9 macOS host. Startup variation is substantial: each logged ZK retry took about 30 seconds. Pair 1 includes an additional retry imbalance; pair 2 had one retry in each run. Query transport/encoding/compression also use existing clock-based sampling. These are observed local results, not a CI-wide percentage or a guarantee of the same saving on other machines. The structural reduction is two cluster/JVM lifecycles to one. ### Validation Run the shared cases with `./mvnw -pl pinot-integration-tests -am test -Pgithub-actions,codecoverage,integration-tests-set-2-lane-b -Dtest=SharedOfflineUploadSuite -Dsurefire.failIfNoSpecifiedTests=false -Dunit.test.rerun.count=0`. Direct selection uses either original class name. The scoped timing runs reused a freshly installed dependency reactor and measured the integration module alone. - Shared suite: 4/4 passed twice; reverse class order: 4/4; direct Writer: 1/1; direct Upload: 3/3. No failed, skipped, or retried test cases. - Exact source-selector model: 175 selected source instances before/after, no duplicates; only these two classes move from the default lane 2-b execution to the named suite. - All 6,699 captured production class files match. A coverage audit caught and corrected premature schema deletion; the existing-schema branch is restored in normal, reverse, and direct Upload runs. A matched diagnostic pair forcing gRPC/ARROW/LZ4_HIGH in the inherited query helper passed 4/4 on each side and covered all 102 previously baseline-only Arrow probes. Its remaining raw differences are 3 lost / 113 gained probes; the losses map to concurrent event deduplication and ZK startup retries. The complete normal-run differences were also inspected. Raw probe equality is not claimed, and diagnostic timings are excluded above. - Formatting, license formatting, checkstyle, and license checks pass. Independent lifecycle and selection reviews found no actionable issues. CI is pending for the new PR head; keeping this PR draft until current-head checks pass and the normal named suite execution is verified. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
