Skip to content

ci: shard the Trino, Presto and Spark e2e jobs - #18

Merged
YoanSallami merged 1 commit into
feat/v2-assertionsfrom
ci/shard-e2e
Oct 7, 2026
Merged

YoanSallami merged 1 commit into
feat/v2-assertionsfrom
ci/shard-e2e

Conversation

@YoanSallami

Copy link
Copy Markdown
Contributor

Trino, Presto and Spark e2e jobs took 45 to over 80 minutes: every query on those engines pays a fixed cost (planning, scheduling tasks, polling for results) that dwarfs the work of a test's few rows, and each engine runs about 15,000 tests.

  • SYNALOG_E2E_SHARD=i/n (tests/e2e/conftest.py) runs one n-th of the selected tests, split by fixture or program, so the tests that share a fixture's rows stay in one shard; the split hashes the name (CRC-32), the same on every machine. An invalid shard is refused.
  • CI runs Trino, Presto and Spark in three jobs each, each with its own server; SQLite, DuckDB and PostgreSQL keep one job each.
  • The three Trino shards hold 5127, 5119 and 5049 tests (all 15,295); a SQLite shard runs locally in 16 s.

🤖 Generated with Claude Code

…each

Their jobs took 45 to over 80 minutes: each of their queries pays a fixed
cost (planning, scheduling, polling) that dwarfs the work of a test's few
rows. SYNALOG_E2E_SHARD=i/n runs one n-th of the selected tests, split by
fixture (its tests share its rows) with a hash the same on every machine;
CI runs each of the three engines in three parallel jobs, each with its own
server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@YoanSallami
YoanSallami merged commit f7f6e2e into feat/v2-assertions Oct 7, 2026
44 checks passed
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.

2 participants