Skip to content

Benchmark two-hop reads - #44

Merged
venkat1701 merged 3 commits into
mainfrom
feat/bench-two-hop
Oct 4, 2026
Merged

venkat1701 merged 3 commits into
mainfrom
feat/bench-two-hop

Conversation

@venkat1701

Copy link
Copy Markdown
Collaborator

Closes #35

Adds read.twohop: for each of 10,000 probe nodes, count the distinct nodes that share a hyperedge with it.

  • HStore: Reader.incident then memberIds, with ids sorted and de-duplicated as longs
  • HyperGraphDB: getIncidenceSet then the link's targets, collected into a HashSet of persistent handles (it has no numeric ids)

It runs right after read.comembership, before large.ingest. Once the hyperedge with every node in it exists, every node is two hops from all the others and the workload stops meaning anything.

I didn't use HGBreadthFirstTraversal, since that would measure HyperGraphDB's traversal framework rather than its storage.

The probes are drawn after the existing random draws, so nothing else in the dataset changes.

Smoke run at scale 1, async, one run each: both return 281,832. HStore did 25,916 probes/s, HyperGraphDB 13,489 (1.9x), with 10.1 KiB and 13.4 KiB allocated per probe.

Counts the distinct nodes reachable through a node's hyperedges with each
engine's plain incidence and member calls. The 10,000 probes are drawn
after the existing ones, so nothing else in the dataset changes.
@venkat1701
venkat1701 merged commit 57736af into main Oct 4, 2026
@venkat1701
venkat1701 deleted the feat/bench-two-hop branch October 6, 2026 00:54
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.

No multi-hop read in the benchmark

1 participant