Skip to content

bench(gfql): fair same-HW cross-DB competitor matrix runners (Kuzu/Memgraph/Neo4j/Pokec)#1704

Open
lmeyerov wants to merge 2 commits into
perf/gfql-olap-real-q1q9from
bench/gfql-fair-matrix
Open

bench(gfql): fair same-HW cross-DB competitor matrix runners (Kuzu/Memgraph/Neo4j/Pokec)#1704
lmeyerov wants to merge 2 commits into
perf/gfql-olap-real-q1q9from
bench/gfql-fair-matrix

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What

Consolidates the competitor benchmark harnesses onto the index/bench stack (they were misplaced on the cypher-conformance branch). Each competitor runs via its own prrao87/graph-benchmark repo query — the fairness fix (our hand-written queries undersold Kuzu ~90×).

New runners

graph_benchmark_{kuzu,memgraph_q1_q9,memgraph_neighbors,neo4j_q1_q9,pokec}.py, graph_benchmark_{compare,polars_q5_q7}.py, graph_benchmark_{expansion,ldbc,neighbors,path,pattern,planner}_probe.py, run_graph_benchmark_memgraph_dgx.sh, docs/source/gfql/benchmark_memgraph.rst. graph_benchmark_q1_q9.py gains the q1 columnar in-degree shortcut + per-query policy metadata. README/RESULTS/graph_benchmark.md union-merged with the stack's index-harness docs.

Scope

Bench-only — no graphistry/ source (the shortestPath-cache perf commit is split to a separate PR). Runnable on dgx via dgx-guard/safe_run.sh.

Fair-matrix findings (dgx, q1–q9, 100k/2.42M FOLLOWS)

  • Real repo-query medians: Kuzu q8 10.4ms / Ladybug q8 19.5ms are genuine WINs (factorized WCOJ path-count).
  • GFQL wins q1 (cuDF 19.7ms via the shortcut, beats Kuzu 253ms) / q2 / q4–q7 / q9 (GPU).
  • Pokec seeded (Memgraph's benchmark): GFQL wins 8/8 via native indexed hop (feat(gfql): physical adjacency indexes for O(degree) seeded traversal #1658 payoff).
  • Pending in follow-ups: Neo4j+Memgraph repo-query runs, Lance-graph, GFQL polars/polars-gpu, seeded across DBs.

🤖 Generated with Claude Code

@lmeyerov lmeyerov force-pushed the bench/gfql-fair-matrix branch 4 times, most recently from 2645ed8 to 33e5a58 Compare July 8, 2026 02:03
@lmeyerov lmeyerov changed the base branch from feat/gfql-index-degrees to perf/gfql-row-pushdown July 8, 2026 02:03
@lmeyerov lmeyerov force-pushed the perf/gfql-row-pushdown branch from 90db1e3 to ed6e12c Compare July 8, 2026 03:14
@lmeyerov lmeyerov force-pushed the bench/gfql-fair-matrix branch 2 times, most recently from 62ffb7f to 25bfd21 Compare July 8, 2026 03:31
@lmeyerov lmeyerov force-pushed the bench/gfql-fair-matrix branch from 25bfd21 to 481e66c Compare July 8, 2026 08:02
@lmeyerov lmeyerov changed the base branch from perf/gfql-row-pushdown to perf/gfql-olap-real-q1q9 July 8, 2026 08:03
@lmeyerov lmeyerov force-pushed the bench/gfql-fair-matrix branch from 481e66c to 42c8726 Compare July 8, 2026 08:55
@lmeyerov lmeyerov force-pushed the perf/gfql-olap-real-q1q9 branch from dc01f38 to c7b5c71 Compare July 8, 2026 08:55
lmeyerov and others added 2 commits July 8, 2026 02:00
…mgraph/Neo4j/Pokec)

Consolidates the competitor benchmark harnesses onto the index/bench stack (were
misplaced on the cypher-conformance branch). Each competitor runs via its OWN
graph-benchmark repo query (the fairness fix — hand-written queries undersold
Kuzu ~90x). New runners: graph_benchmark_{kuzu,memgraph_q1_q9,neo4j_q1_q9,pokec,
memgraph_neighbors}.py + {compare,polars_q5_q7}.py + {expansion,ldbc,neighbors,
path,pattern,planner}_probe.py + run_graph_benchmark_memgraph_dgx.sh +
docs/source/gfql/benchmark_memgraph.rst. graph_benchmark_q1_q9.py gains the q1
columnar in-degree shortcut + per-query policy metadata. README/RESULTS/
graph_benchmark.md union-merged with the stack's index-harness docs.

Bench-only (no graphistry/ source); the shortestPath-cache perf commit is split
out for a separate PR. Fair-matrix real medians (dgx, q1-q9 100k/2.4M): Kuzu q8
10.4ms / Ladybug q8 19.5ms are genuine WINs; GFQL wins q1(cuDF 19.7ms via the
shortcut)/q2/q4-q7/q9(GPU); Pokec seeded GFQL 8/8 via native indexed hop.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012rRBmezaBEi2CJgDGkMNgR
@lmeyerov lmeyerov force-pushed the bench/gfql-fair-matrix branch from 42c8726 to da2cd7a Compare July 8, 2026 09:01
@lmeyerov lmeyerov force-pushed the perf/gfql-olap-real-q1q9 branch from c7b5c71 to ea3fcd9 Compare July 8, 2026 09:01
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