Repository navigation
Reduce databricks runs #341
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Task description
Benchmark cost is essentially num_workers × cluster_window (per-node-hour rate is fixed at ~$0.3165; ACI, Postgres, blob ops, and intra-region egress are negligible by comparison). Almost all spend lives in RQ2-large Sedona, so the highest-leverage cost cut is trimming worker counts on that tier rather than touching dataset tiers.
Decision:
- Drop the 12-node point for
broadcastandpartitionedat thelargetier; keep{2, 4, 8, 16}. This removes the second-most-expensive worker level while preserving the scaling-curve shape (steep early gains across 2→4→8, diminishing-returns/COST anchor at 16; 12 only interpolates between 8 and 16). - Keep RQ1 at small + large (single-node, near-zero cost; large is the informative tier) — no tier change.
- Keep all RQ2 dataset tiers for now; if further savings are needed, thin RQ2
mediumnode breadth rather than dropping a tier. - The national-scale-join
@monitorbranch has no wall-clock ceiling (use_sequential_stopping=Falseskips the timeout), so a pathological iteration converts directly into billed node-hours. Add a finite ceiling to cap worst-case cost.
This also captures cleanup now that the default strategy has been removed entirely.
Developer tasks
- Remove
national-scale-spatial-join-databricks-broadcast-12-nodes-largeand...-partitioned-12-nodes-largefrombenchmarks.yml - Rebatch the orphaned
large4-node peers (currentlybroadcast-12pairs withbroadcast-4,partitioned-12withpartitioned-4); re-pointrelated_script_idsso the 4-node pair still launches together andmain.py::_assert_related_ids_resolvablepasses (e.g. pairbroadcast-4-large↔partitioned-4-large, vCPU sum 40 ≤ 200) - Remove the now-unused 12-node entrypoints,
benchmark_runner.pydispatch arms,docker-compose.ymlservices, and matrix rows inpull-request-tests.yml/push-containers-to-acr.yml(only if 12-node is unused at every tier) - Confirm no dangling
defaultreferences remain after its removal: grepbenchmarks.yml,benchmark_runner.py,entrypoints/__init__.py,app_config.py,docker-compose.yml, both workflow matrices, and deletenational_scale_spatial_join_default.py - Add a finite wall-clock ceiling for the
national_scale_spatial_join_*branch inmonitorso cost/time can't run away (the 5.4 hdefault-16case) - Reconcile thesis ↔ code: update RQ2 worker levels in Table 4.1.1 (lists 2, 4, 8, 12, 16) and Table 4.2.1; fix the join iteration count (p.44 says seven, code uses
NATIONAL_SCALE_SPATIAL_JOIN = 5+ 1 warmup); remove "Sedona + GeoParquet" from the RQ1 single-machine rows in Table 4.2.1 (no Sedona single-machine entrypoints exist)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
#341 Remove 12-node Databricks configs and rebatch orphaned 4-node peers
#341 Add 75-minute cumulative ceiling for fixed-iteration benchmarks
#341 Update CLAUDE.md stopping-rule docs for fixed-window ceiling
Merge pull request #344 from kartAI/feature/341-reduce-databricks-runs
#341 Remove stale 12-node module references from DI wiring