matrix-org
matrix-rust-sdk
BlogDocsChangelog

feat(base,sdk): Support for dirty cross-process lock in the `EventCache`

#5856
Comparing
Hywan:feat-cross-process-lock-event-cache
(
cf881ab
) with
main
(
b1eaa5e
)
CodSpeed Performance Gauge
+1%
Untouched
50

Benchmarks

Passed

Event cache find_event_relations[SQLite][10 events, #no filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
+23%
1,126.3 µs916.7 µs
Event cache find_event_relations[SQLite][10 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
+21%
1,186.4 µs980.2 µs
Create a timeline with initial events[10000 events]
benchmarks/benches/timeline.rs::room::create_timeline_with_initial_events::Create a timeline
CodSpeed Performance Gauge
+9%
811.8 ms745.4 ms
Event cache find_event_relations[SQLite][100 events, #no filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
+6%
7.5 ms7 ms
Event cache find_event_relations[SQLite][100 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
+5%
7.9 ms7.5 ms
Event cache find_event_relations[SQLite][1000 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
+5%
77.4 ms73.6 ms
Event cache find_event_relations[SQLite][1000 events, #no filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
+5%
72.5 ms69.1 ms
Linked chunk writing [memory store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
+3%
3.7 ms3.6 ms
Event cache room updates[SQLite][room count: 1]
benchmarks/benches/event_cache.rs::event_cache::handle_room_updates::Event cache room updates
CodSpeed Performance Gauge
+1%
42.1 ms41.7 ms
Linked chunk lazy loader[sqlite store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
+1%
15.4 ms15.3 ms
Linked chunk metadata loader[sqlite store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
1.2 ms1.1 ms
Restore session [SQLite][clear]
benchmarks/benches/store_bench.rs::benches::restore_session::Client reload
CodSpeed Performance Gauge
0%
750.6 ms748.2 ms
Linked chunk lazy loader[sqlite store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
1.7 ms1.7 ms
Linked chunk writing [memory store][10]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
53.2 µs53.1 µs
Linked chunk metadata loader[sqlite store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
229.2 µs228.8 µs
Linked chunk lazy loader[sqlite store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
401.1 µs400.5 µs
Event cache find_event_relations[memory][10 events, #no filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
3.3 ms3.3 ms
Linked chunk lazy loader[memory store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
194 µs193.7 µs
Event cache find_event_relations[memory][10 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
3.3 ms3.3 ms
Linked chunk writing [memory store][100]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
361.2 µs360.8 µs
Restore session [SQLite][encrypted]
benchmarks/benches/store_bench.rs::benches::restore_session::Client reload
CodSpeed Performance Gauge
0%
1.4 s1.4 s
Linked chunk lazy loader[memory store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
2.4 ms2.4 ms
Room key sharing [SQLite][163 devices]
benchmarks/benches/crypto_bench.rs::benches::room_key_sharing::Room key sharing
CodSpeed Performance Gauge
0%
57.9 ms57.8 ms
Linked chunk writing [none][100]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
89 µs88.9 µs
Linked chunk writing [sqlite store][10]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
587.5 µs587.1 µs
Devices collecting [SQLite][2003 devices]
benchmarks/benches/crypto_bench.rs::benches::devices_missing_sessions_collecting::Devices missing sessions collecting
CodSpeed Performance Gauge
0%
100.7 ms100.6 ms
Linked chunk writing [none][1000]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
833.4 µs833 µs
Create[1000 rooms × 1000 events]
benchmarks/benches/room_list.rs::room_list::create::RoomList
CodSpeed Performance Gauge
0%
30.7 ms30.7 ms
Event cache find_event_relations[memory][100 events, #no filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
46.9 ms46.9 ms
Event cache room updates[memory][room count: 10]
benchmarks/benches/event_cache.rs::event_cache::handle_room_updates::Event cache room updates
CodSpeed Performance Gauge
0%
143 ms143 ms
Event cache find_event_relations[memory][100 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
46.9 ms46.9 ms
Linked chunk writing [none][10]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
16 µs16 µs
Event cache find_event_relations[memory][1000 events, #no filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
2.2 s2.2 s
Event cache find_event_relations[memory][1000 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
2.2 s2.2 s
Device keys query [SQLite][153 device and cross signing keys]
benchmarks/benches/crypto_bench.rs::benches::keys_query::Keys querying
CodSpeed Performance Gauge
0%
38.9 ms38.9 ms
Linked chunk writing [sqlite store][100]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
3 ms3 ms
Linked chunk writing [sqlite store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
33.3 ms33.4 ms
Room key sharing [memory][163 devices]
benchmarks/benches/crypto_bench.rs::benches::room_key_sharing::Room key sharing
CodSpeed Performance Gauge
0%
46.8 ms46.8 ms
Restore session [memory store]
benchmarks/benches/store_bench.rs::benches::restore_session::Client reload
CodSpeed Performance Gauge
0%
274.3 ms274.5 ms
Event cache room updates[SQLite][room count: 10]
benchmarks/benches/event_cache.rs::event_cache::handle_room_updates::Event cache room updates
CodSpeed Performance Gauge
0%
443.9 ms444.5 ms
Device keys query [memory][153 device and cross signing keys]
benchmarks/benches/crypto_bench.rs::benches::keys_query::Keys querying
CodSpeed Performance Gauge
0%
27.6 ms27.6 ms
Linked chunk metadata loader[sqlite store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
155.8 µs156 µs
Event cache room updates[memory][room count: 1]
benchmarks/benches/event_cache.rs::event_cache::handle_room_updates::Event cache room updates
CodSpeed Performance Gauge
0%
14 ms14.1 ms
Event cache room updates[memory][room count: 100]
benchmarks/benches/event_cache.rs::event_cache::handle_room_updates::Event cache room updates
CodSpeed Performance Gauge
0%
1.5 s1.5 s
Devices collecting [memory][2003 devices]
benchmarks/benches/crypto_bench.rs::benches::devices_missing_sessions_collecting::Devices missing sessions collecting
CodSpeed Performance Gauge
0%
10.8 ms10.8 ms
Linked chunk metadata loader[memory store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
-1%
682.4 µs686.6 µs
Event cache room updates[SQLite][room count: 100]
benchmarks/benches/event_cache.rs::event_cache::handle_room_updates::Event cache room updates
CodSpeed Performance Gauge
-1%
4.7 s4.8 s
Linked chunk metadata loader[memory store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
-1%
19.8 µs20 µs
Linked chunk metadata loader[memory store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
-1%
5.8 µs5.8 µs
Linked chunk lazy loader[memory store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
-2%
33.9 µs34.8 µs

Commits

Click on a commit to change the comparison range
Base
main
b1eaa5e
+1.85%
test(common): Test dirtiness of the cross-process lock.
8ee41f4
2 days ago
by Hywan
-0.47%
test(sdk): Add the `test_reset_when_dirty` test. This patch adds the new `test_reset_when_dirty` test, which ensures the state is correctly reset when the cross-process lock over the store becomes dirty.
cf881ab
22 hours ago
by Hywan
© 2025 CodSpeed Technology
Home Terms Privacy Docs