Skip to content

Fix concurrent updates#2490

Merged
fabianmurariu merged 30 commits intodb_v4from
fix/try_node
Feb 23, 2026
Merged

Fix concurrent updates#2490
fabianmurariu merged 30 commits intodb_v4from
fix/try_node

Conversation

@ljeub-pometry
Copy link
Collaborator

@ljeub-pometry ljeub-pometry commented Feb 12, 2026

What changes were proposed in this pull request?

Both node and edge additions were making newly added nodes available before they were initialised, leading to errors with concurrent read operations

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

rework of the internal apis only

How was this patch tested?

the graphql stress-test

Are there any further changes required?

the addition apis need a major cleanup

@ljeub-pometry ljeub-pometry requested review from fabianmurariu and fabubaker and removed request for fabianmurariu February 12, 2026 15:33
Copy link
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: 5ea047e Previous: 9567900 Ratio
large/1k random edge additions 1622823 ns/iter (± 148971) 499905 ns/iter (± 48689) 3.25
large/1k random edge additions with numeric string input 2309548 ns/iter (± 163124) 714458 ns/iter (± 48806) 3.23
lotr_graph/num_edges 3 ns/iter (± 0) 0 ns/iter (± 0) +∞
lotr_graph/num_nodes 560 ns/iter (± 6) 2 ns/iter (± 0) 280
lotr_graph/iterate nodes 5005 ns/iter (± 15) 1952 ns/iter (± 77) 2.56
lotr_graph/graph_latest 2 ns/iter (± 0) 0 ns/iter (± 0) +∞
lotr_graph_materialise/materialize 10057219 ns/iter (± 196239) 1522661 ns/iter (± 3102) 6.61
lotr_graph_window_100/num_edges 27 ns/iter (± 0) 8 ns/iter (± 0) 3.38
lotr_graph_window_100/num_nodes 600 ns/iter (± 3) 5 ns/iter (± 0) 120
lotr_graph_window_100_materialise/materialize 11183319 ns/iter (± 150776) 1647661 ns/iter (± 5147) 6.79
lotr_graph_window_10/has_node_existing 128 ns/iter (± 10) 61 ns/iter (± 12) 2.10
lotr_graph_window_10/max_id 56457 ns/iter (± 4240) 24420 ns/iter (± 6303) 2.31
lotr_graph_window_10/iterate nodes 31226 ns/iter (± 71) 10897 ns/iter (± 52) 2.87
lotr_graph_window_10/graph_latest 55172 ns/iter (± 1238) 26080 ns/iter (± 2237) 2.12
lotr_graph_window_10_materialise/materialize 6832641 ns/iter (± 85007) 1013406 ns/iter (± 5119) 6.74
lotr_graph_subgraph_10pc/has_edge_existing 427 ns/iter (± 11) 85 ns/iter (± 1) 5.02
lotr_graph_subgraph_10pc/num_nodes 374 ns/iter (± 2) 4 ns/iter (± 0) 93.50
lotr_graph_subgraph_10pc/has_node_existing 181 ns/iter (± 4) 30 ns/iter (± 0) 6.03
lotr_graph_subgraph_10pc/iterate nodes 4920 ns/iter (± 7) 853 ns/iter (± 1) 5.77
lotr_graph_subgraph_10pc_windowed/has_node_existing 126 ns/iter (± 10) 62 ns/iter (± 14) 2.03
lotr_graph_subgraph_10pc_windowed/has_node_nonexisting 5 ns/iter (± 0) 2 ns/iter (± 0) 2.50
lotr_graph_subgraph_10pc_windowed/iterate nodes 4953 ns/iter (± 51) 1399 ns/iter (± 3) 3.54
lotr_graph_window_50_layered/num_nodes 95964 ns/iter (± 4682) 22515 ns/iter (± 3326) 4.26
lotr_graph_window_50_layered/has_node_existing 1189 ns/iter (± 163) 123 ns/iter (± 15) 9.67
lotr_graph_window_50_layered/max_id 124485 ns/iter (± 7338) 27871 ns/iter (± 475) 4.47
lotr_graph_window_50_layered/max_degree 1912847 ns/iter (± 38315) 298581 ns/iter (± 9998) 6.41
lotr_graph_window_50_layered/iterate nodes 175055 ns/iter (± 1299) 18512 ns/iter (± 205) 9.46
lotr_graph_window_50_layered/iterate edges 180684 ns/iter (± 343) 83040 ns/iter (± 327) 2.18
lotr_graph_window_50_layered/max_neighbour_degree 2935063 ns/iter (± 9908) 388874 ns/iter (± 1455) 7.55
lotr_graph_window_50_layered/graph_latest 188690 ns/iter (± 7672) 38418 ns/iter (± 718) 4.91
lotr_graph_window_50_layered_materialise/materialize 23121586 ns/iter (± 400491) 3378119 ns/iter (± 12216) 6.84
lotr_graph_persistent_window_50_layered/num_edges 72256 ns/iter (± 3757) 35926 ns/iter (± 545) 2.01
lotr_graph_persistent_window_50_layered/num_edges_temporal 648211 ns/iter (± 9270) 207488 ns/iter (± 4439) 3.12
lotr_graph_persistent_window_50_layered/num_nodes 136229 ns/iter (± 6583) 31798 ns/iter (± 386) 4.28
lotr_graph_persistent_window_50_layered/has_node_existing 1492 ns/iter (± 352) 180 ns/iter (± 82) 8.29
lotr_graph_persistent_window_50_layered/max_id 161955 ns/iter (± 12055) 39294 ns/iter (± 1497) 4.12
lotr_graph_persistent_window_50_layered/max_degree 2661799 ns/iter (± 29236) 457666 ns/iter (± 12739) 5.82
lotr_graph_persistent_window_50_layered/iterate nodes 251026 ns/iter (± 632) 36447 ns/iter (± 154) 6.89
lotr_graph_persistent_window_50_layered/max_neighbour_degree 3934792 ns/iter (± 16875) 518296 ns/iter (± 8441) 7.59
lotr_graph_persistent_window_50_layered/graph_latest 283546 ns/iter (± 15175) 58093 ns/iter (± 1228) 4.88
lotr_graph_persistent_window_50_layered_materialise/materialize 58301307 ns/iter (± 1673092) 5111080 ns/iter (± 28206) 11.41
lotr_graph/proto_decode 8134115 ns/iter (± 88205) 1875628 ns/iter (± 40776) 4.34
lotr_graph/proto_encode 6642904 ns/iter (± 106729) 1163713 ns/iter (± 114520) 5.71

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

@ljeub-pometry ljeub-pometry changed the title Fix concurrent edge updates Fix concurrent updates Feb 16, 2026
Copy link
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

@fabianmurariu fabianmurariu merged commit 8f54d88 into db_v4 Feb 23, 2026
17 of 19 checks passed
@fabianmurariu fabianmurariu deleted the fix/try_node branch February 23, 2026 15:10
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