Skip to content

doc(bench): restructure cross-platform timings by what each measurement licenses (supersedes #26)#29

Merged
estebanzimanyi merged 9 commits into
MobilityDB:masterfrom
estebanzimanyi:doc/benchmark-restructure
Jun 5, 2026
Merged

doc(bench): restructure cross-platform timings by what each measurement licenses (supersedes #26)#29
estebanzimanyi merged 9 commits into
MobilityDB:masterfrom
estebanzimanyi:doc/benchmark-restructure

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Restructures the cross-platform BerlinMOD timing comparison so the document is organised around what each section is licensed to claim:

  • Section 1 — three-platform th3index matrix (only this section is cross-platform-comparable).
  • Section 2 — per-platform native-index sub-matrices (intra-platform comparisons only).
  • Section 3 — Section 1 × Section 2 composition (only where it beats both alone).

Each section is self-contained. The earlier blended layout that mixed indexes and platforms in a single matrix is gone.

Key changes vs #26

  • Q5 framing is reset to canonical: minDistance over the licence cross-join, exact, no row-dropping prefilter. The everEqTh3IndexTh3Index cell-prefiltered form is a separate throughput diagnostic, never labelled Q5.
  • MobilitySpark is explicitly scoped out of Section 2 (no native spatial index, nothing to vary).
  • Cross-cutting invariants section spells out the soundness gate and the Q5-as-negative-control rule.
  • MEST description in Section 2 is reframed as a multi-entry layer over the three single-entry index families (R-tree, quadtree, k-d tree) rather than 'multi-entry R-tree, equisplit' — the original phrasing only matched the mrtree opclass and left the mquadtree/mkdtree flavours unexplained.
  • MobilityDuck intra-platform sub-matrix added with the same structure as the MobilityDB one: TRTREE single-entry + TRTREE with MEST multi-entry (N=4, N=8). Numbers pending MobilityDuck #139 / #143 / #144.
  • Uniform versioning: DuckDB 1.4.4 displayed alongside PostgreSQL 17.8 and Spark 3.5.4 in the platform list.

Supersedes

Replaces #26 (doc/benchmarks-th3index) for the same file — the restructure is incompatible with #26's older blended layout. Closing #26 in favour of this PR is the recommended path.

- Add LICENSE file (PostgreSQL License, 2020-2026, ULB + MobilityDB contributors)
- Update copyright headers in all SQL/sh files to standard ecosystem form
- Update CI workflow (main.yml): feat/**/fix/** branch triggers,
  paths-ignore for *.md/doc/**, workflow_dispatch, concurrency cancellation
- Restructure README into 7 numbered sections; add Cross-Platform Portability
  section (§4) documenting the portable SQL dialect and ecosystem platforms;
  add Contributing section explaining the perennial master branch model
- Add berlinmod_chapter1_queries_portable.sql: Q1–Q6 in the portable named-
  function dialect (eIntersects/eContains instead of operator symbols),
  compatible with MobilityDB, MobilityDuck, and MobilitySpark
- Add berlinmod_portability_export() to berlinmod_export.sql: exports
  vehicles, trips (as WKT tgeompoint text), query_licences, query_instants,
  and query_points in the shared cross-platform schema consumed by
  MobilityDuck and MobilitySpark
Bare-name portable variants of the chapter-1 and 17 R-queries runnable on MobilityDB (PostgreSQL), MobilityDuck (DuckDB), and MobilitySpark (Spark); their th3index-accelerated counterparts plus berlinmod_th3index_setup.sql; the trip_h3 column in the export/load path; and a MobilityDuck schema adapter.
…banner)

Adds doc/contributing/reviewer-guide.md mirroring the canonical reviewer-
guide structure used in MobilityDB / MobilityDuck / MobilitySpark / JMEOS,
scoped to MobilityDB-BerlinMOD.

Same canonical path (doc/contributing/reviewer-guide.md) as the other
four ecosystem repos — reviewers landing in any of the five find the
same structure at the same place.

- Dependency chain: PR MobilityDB#23 (ecosystem-standards foundation) → PR MobilityDB#24
  (extends portability_export with trip_h3 — pairs with MobilityDB
  PR #938 geo_to_h3index_set).  Cross-repo dependency on MobilityDB
  th3index branch (#807 / #866 / #893) documented per
  feedback_issued_pr_treat_as_landed.md.
- Tier ranking + per-tier review notes.
- Standards checklist: license header, portable-name convention,
  CSV portability, loader cross-platform impact.
- Cross-repo links to the other four ecosystem reviewer guides.

Wires visibility:

- .github/PULL_REQUEST_TEMPLATE.md links to the guide so contributors
  are prompted to update it in any commit that opens / closes /
  restructures a PR.
- README.md gains a 'For contributors and reviewers' section pointing
  to the guide.
Cross-platform R-query and th3index timing/readiness reports for MobilityDB (PostgreSQL), MobilityDuck (DuckDB), and MobilitySpark (Spark), the per-platform UDF audits, the beta-testing notes, the grouped cross-platform bar charts, and a root-README pointer to BerlinMOD/benchmarks/.
run_bench.sh / run_full_bench.sh one-shot reproducibility wrappers and the chart renderer.
Title 'BerlinMOD three-platform DB benchmark' with a matched-tone summary, a
query-shape workload table, methodology, invariants, a per-engine results grid
(MobilityDB / MobilityDuck / MobilitySpark), grouped baseline and th3index
charts, a parity cross-link to the streaming sibling, and a contributing
section. The MobilityDB column carries its BerlinMOD sf 0.005 times.
The Acceleration section reads top-down: (1) the shared th3index accelerator on
all three engines — the only cross-engine comparison; (2) each engine's native
indexes (MobilityDB GiST/SP-GiST/MEST, MobilityDuck R-tree) — intra-engine; and
(3) the combination of th3index with a native index where both pay. Each axis
has a fillable per-configuration grid and a chart whose legend names the
accelerator. The MobilityDB column carries its measured times.
The three acceleration axes carry MobilityDB's measured figures at sf 0.005: the
shared th3index prefilter (39x on Q6, 24x on Q10 over the trip×trip cross-joins;
neutral-to-penalty on the region shapes where the H3 cell-set covers the city),
the native index families (GiST, SP-GiST, MEST — MEST 2.2x on the point shape and
2.4x on the simple region shape, R-tree on the triple cross-join), and the
combined axis (no win at sf 0.005; the crossover appears on a scale-factor sweep).
Charts name the accelerator per bar.
@estebanzimanyi estebanzimanyi force-pushed the doc/benchmark-restructure branch from 633aaa8 to 8c01ad7 Compare June 5, 2026 20:22
@estebanzimanyi estebanzimanyi merged commit c463312 into MobilityDB:master Jun 5, 2026
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