Skip to content

integration cicd speedup: Enable Maven module parallelism#818

Draft
dkropachev wants to merge 2 commits intoscylladb:scylla-4.xfrom
dkropachev:maven-module-parallelism
Draft

integration cicd speedup: Enable Maven module parallelism#818
dkropachev wants to merge 2 commits intoscylladb:scylla-4.xfrom
dkropachev:maven-module-parallelism

Conversation

@dkropachev
Copy link

@dkropachev dkropachev commented Mar 1, 2026

Summary

  • Add MAVEN_PARALLEL_THREADS variable (default: 1C = 1 thread per CPU core) to the Makefile
  • Modules without inter-dependencies (query-builder, mapper-processor, etc.) now compile and test in parallel
  • Override with make compile-all MAVEN_PARALLEL_THREADS=2 if needed

Test plan

  • Verify make compile-all completes successfully with parallel builds
  • Verify make test-unit passes with parallel module execution
  • Verify make check passes

Add MAVEN_PARALLEL_THREADS variable (default: 1C = 1 thread per CPU core)
to the compile-all target. Use 'install' instead of 'compile test-compile'
so that annotation processors (mapper-processor) are installed to the
local repo before downstream modules (examples) start compiling.
@dkropachev dkropachev force-pushed the maven-module-parallelism branch from 806cccc to a9f7ff8 Compare March 1, 2026 12:01
The examples module uses annotationProcessorPaths to reference
mapper-processor, which Maven resolves from the local repo (not the
reactor). With parallel builds (-T), examples can start compiling
before mapper-processor is installed, causing a resolution failure.

Split compile-all into two phases: parallel install of all modules
except examples, then sequential compile of examples.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dkropachev
Copy link
Author

CI Performance Results

Compared PR #818 against baseline (PR #821). 3 failures are pre-existing flaky tests, not related to this PR.

Job Baseline PR #818 Delta % Status
Cassandra ITs (3-LATEST, parallelizable) 7.2m 6.9m -0.3m -3.9% OK
Cassandra ITs (3-LATEST, serial) 15.7m 15.5m -0.2m -1.5% OK
Cassandra ITs (3-LATEST, isolated) 12.6m 13.2m +0.5m +4.2% OK
Cassandra ITs (4-LATEST, parallelizable) 7.8m 7.4m -0.4m -5.5% OK
Cassandra ITs (4-LATEST, serial) 14.3m 14.8m +0.5m +3.8% OK
Cassandra ITs (4-LATEST, isolated) 13.1m 12.5m -0.6m -4.6% FAIL
Scylla ITs (LTS-LATEST, parallelizable) 5.7m 5.5m -0.2m -3.2% OK
Scylla ITs (LTS-LATEST, serial) 9.2m 9.5m +0.2m +2.3% OK
Scylla ITs (LTS-LATEST, isolated) 10.7m 8.6m -2.1m -19.8% OK
Scylla ITs (LTS-PRIOR, parallelizable) 5.7m 5.7m +0.0m +0.9% OK
Scylla ITs (LTS-PRIOR, serial) 9.3m 9.2m -0.1m -1.1% FAIL
Scylla ITs (LTS-PRIOR, isolated) 9.2m 9.3m +0.2m +2.2% FAIL
Scylla ITs (LATEST, parallelizable) 5.5m 5.6m +0.0m +0.3% OK
Scylla ITs (LATEST, serial) 9.3m 9.2m -0.1m -0.9% OK
Scylla ITs (LATEST, isolated) 9.0m 9.1m +0.1m +1.3% OK
TOTAL 144.4m 142.1m -2.4m -1.6%
Critical path 15.7m 15.5m -0.2m -1.5%

No significant performance difference from this PR alone — within normal CI variance. The Maven module parallelism (-T 1C) primarily benefits the Build and Unit tests jobs (which compile/test non-integration modules in parallel), not the integration test jobs which are dominated by CCM cluster setup and test execution time.

Failed tests (pre-existing, unrelated to this PR)

  1. Cassandra ITs (4-LATEST, isolated): PreparedStatementCancellationIT:111 — assertion true expected but got false
  2. Scylla ITs (LTS-PRIOR, serial): DefaultMetadataTabletMapIT:323 — expected 32 but was 428
  3. Scylla ITs (LTS-PRIOR, isolated): AdvancedShardAwarenessIT:239 — pool fill timeout (20s) — addressed in PR Fix flaky AdvancedShardAwarenessIT timeouts in CI #821

@dkropachev dkropachev marked this pull request as draft March 2, 2026 01:50
Sign up for free to 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.

1 participant