Skip to content

feat: benchmark lance-csr 0.5.1 on the 30 queries - #34

Merged
prrao87 merged 3 commits into
mainfrom
bench/lance-csr-0.5.1
Oct 31, 2026
Merged

prrao87 merged 3 commits into
mainfrom
bench/lance-csr-0.5.1

Conversation

@prrao87

@prrao87 prrao87 commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Why

lance-csr 0.5.1 is out, and the published lance-csr numbers are from 0.3.1. This updates the lance-csr columns to the current release. The other engines' results are unchanged.

This branch builds on #33, which moves the lance-csr runner to node_table and rel_table because 0.5.0 removed the builder methods it used. Merge #33 first; this PR then shows only the version bump and new results.

What changed

  • lance-csr is pinned to 0.5.1, and ./run_benchmarks.sh lance_csr writes lance-csr-0.5.1-memory and lance-csr-0.5.1-lazy results.
  • The 0.3.1 results move to the archive, and the README table and heatmap now show 0.5.1 in both modes.
  • The README records the 2026-10-31 run date and the version change.

Compared with 0.3.1, most queries are within run-to-run noise. The two slowest queries:

Query 0.3.1 lazy (ms) 0.5.1 lazy (ms) 0.3.1 memory (ms) 0.5.1 memory (ms)
q20 16.448 16.771 2.047 2.026
q30 47.496 42.024 43.670 40.900

q30 is faster in both modes. Lazy-mode q27 and q28 had a few slow rounds in this run (q28 stddev 1.66 ms on a 1.93 ms min), so their means overstate them slightly.

Validation

  • ./run_benchmarks.sh lance_csr on the Apple M5 on AC power: all 30 queries pass their result assertions in both modes, with no deprecation warnings.
  • The first two runs were taken while the machine was busy and had outlier rounds (memory-mode q9 stddev 1.28 ms on a 0.83 ms min, memory-mode q30 stddev 14.7 ms). The table uses a third run on a quiet machine, where memory-mode spread is close to 0.3.1's apart from a few slow rounds on q11 and q25.
  • No CI runs the benchmark.

🤖 Generated with Claude Code

lance-csr 0.5.0 removes with_node_label and with_relationship, which the
shared lance-graph query module calls, so the lance-csr runner would
fail before running a query. Build the same mapping with lance-csr's
node_table and rel_table instead, reading each relationship's endpoint
node tables from its dataset name. The shared module, queries and
expected answers are unchanged, and the change works on 0.3.1 as well.
Bump lance-csr from 0.3.1 to 0.5.1 and re-run both modes on mains
power. All 30 queries pass in memory and lazy modes. Archive the 0.3.1
results and update the results table, heatmap and docs.
@prrao87
prrao87 marked this pull request as ready for review October 31, 2026 18:15
@prrao87
prrao87 merged commit 6f1b990 into main Oct 31, 2026
@prrao87
prrao87 deleted the bench/lance-csr-0.5.1 branch October 31, 2026 18:17
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