Skip to content

Optimisations for node validity and neighbour filtering#2586

Merged
miratepuffin merged 55 commits intodb_v4from
optimise_node_valid
May 6, 2026
Merged

Optimisations for node validity and neighbour filtering#2586
miratepuffin merged 55 commits intodb_v4from
optimise_node_valid

Conversation

@ljeub-pometry
Copy link
Copy Markdown
Collaborator

What changes were proposed in this pull request?

Improve the implementations of node_valid and use src/dst from edge ref for filtering when available

Why are the changes needed?

Performance

Does this PR introduce any user-facing change? If yes is this documented?

No

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rust Benchmark'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 6dbea9e Previous: 9823ef7 Ratio
lotr_graph/num_edges 4 ns/iter (± 0) 0 ns/iter (± 0) +∞
lotr_graph/num_nodes 4 ns/iter (± 0) 1 ns/iter (± 0) 4
lotr_graph/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50
lotr_graph/graph_latest 3 ns/iter (± 0) 0 ns/iter (± 0) +∞
lotr_graph_materialise/materialize 7774773 ns/iter (± 21183) 1564816 ns/iter (± 35303) 4.97
lotr_graph_window_100/num_nodes 14 ns/iter (± 0) 5 ns/iter (± 0) 2.80
lotr_graph_window_100/iterate_exploded_edges 831143 ns/iter (± 1919) 325242 ns/iter (± 847) 2.56
lotr_graph_window_100_materialise/materialize 8351210 ns/iter (± 41102) 1669150 ns/iter (± 10700) 5.00
lotr_graph_window_10/has_node_existing 150 ns/iter (± 10) 62 ns/iter (± 11) 2.42
lotr_graph_window_10/iterate nodes 34749 ns/iter (± 406) 11339 ns/iter (± 40) 3.06
lotr_graph_window_10/iterate edges 99388 ns/iter (± 242) 48684 ns/iter (± 211) 2.04
lotr_graph_window_10/iterate_exploded_edges 419736 ns/iter (± 3889) 155788 ns/iter (± 1001) 2.69
lotr_graph_window_10_materialise/materialize 3481299 ns/iter (± 10324) 971980 ns/iter (± 4278) 3.58
lotr_graph_subgraph_10pc/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50
lotr_graph_subgraph_10pc_materialise/materialize 1603813 ns/iter (± 18795) 334634 ns/iter (± 1287) 4.79
lotr_graph_subgraph_10pc_windowed/has_node_existing 156 ns/iter (± 12) 62 ns/iter (± 14) 2.52
lotr_graph_subgraph_10pc_windowed/iterate nodes 5430 ns/iter (± 253) 1365 ns/iter (± 3) 3.98
lotr_graph_subgraph_10pc_windowed_materialise/materialize 936846 ns/iter (± 24854) 230399 ns/iter (± 2617) 4.07
lotr_graph_window_50_layered/num_edges 78523 ns/iter (± 1176) 38714 ns/iter (± 1017) 2.03
lotr_graph_window_50_layered/num_edges_temporal 162505 ns/iter (± 2045) 70121 ns/iter (± 7586) 2.32
lotr_graph_window_50_layered/has_node_existing 461 ns/iter (± 23) 129 ns/iter (± 12) 3.57
lotr_graph_window_50_layered/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50
lotr_graph_window_50_layered/iterate nodes 80902 ns/iter (± 1705) 19308 ns/iter (± 47) 4.19
lotr_graph_window_50_layered/iterate edges 205839 ns/iter (± 1100) 83616 ns/iter (± 1318) 2.46
lotr_graph_window_50_layered/graph_latest 80171 ns/iter (± 953) 36649 ns/iter (± 916) 2.19
lotr_graph_window_50_layered_materialise/materialize 27498222 ns/iter (± 80873) 3488825 ns/iter (± 24948) 7.88
lotr_graph_persistent_window_50_layered/num_edges_temporal 668785 ns/iter (± 5673) 192686 ns/iter (± 1569) 3.47
lotr_graph_persistent_window_50_layered/has_edge_existing 224 ns/iter (± 126) 109 ns/iter (± 23) 2.06
lotr_graph_persistent_window_50_layered/has_node_existing 501 ns/iter (± 357) 174 ns/iter (± 83) 2.88
lotr_graph_persistent_window_50_layered/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50
lotr_graph_persistent_window_50_layered/iterate nodes 107068 ns/iter (± 179) 35886 ns/iter (± 191) 2.98
lotr_graph_persistent_window_50_layered/iterate edges 177596 ns/iter (± 420) 84161 ns/iter (± 596) 2.11
lotr_graph_persistent_window_50_layered/iterate_exploded_edges 4655952 ns/iter (± 74438) 1659940 ns/iter (± 19402) 2.80
lotr_graph_persistent_window_50_layered/graph_latest 117397 ns/iter (± 1725) 57549 ns/iter (± 4809) 2.04
lotr_graph_persistent_window_50_layered_materialise/materialize 51647787 ns/iter (± 84949) 5298035 ns/iter (± 147912) 9.75
lotr_graph/proto_encode 9642175 ns/iter (± 69185) 1157897 ns/iter (± 73709) 8.33

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Copy Markdown
Collaborator

@fabianmurariu fabianmurariu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miratepuffin miratepuffin merged commit 1743905 into db_v4 May 6, 2026
21 of 23 checks passed
@miratepuffin miratepuffin deleted the optimise_node_valid branch May 6, 2026 15:42
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.

3 participants