matrix-org
matrix-rust-sdk
BlogDocsChangelog

fix(sdk): Better handling of redacted and redaction events in Latest Event

#5932
Comparing
Hywan:fix-issue-5899
(
61bc261
) with
main
(
238e4e8
)
CodSpeed Performance Gauge
0%
Untouched
50

Benchmarks

Passed

Restore session [SQLite][clear]
benchmarks/benches/store_bench.rs::benches::restore_session::Client reload
CodSpeed Performance Gauge
+8%
788.3 ms727.7 ms
Devices collecting [memory][2003 devices]
benchmarks/benches/crypto_bench.rs::benches::devices_missing_sessions_collecting::Devices missing sessions collecting
CodSpeed Performance Gauge
+3%
10.8 ms10.4 ms
Linked chunk writing [memory store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
+2%
3.6 ms3.6 ms
Linked chunk lazy loader[sqlite store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
+1%
397.7 µs394.7 µs
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
+1%
7.5 ms7.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
+1%
7 ms6.9 ms
Linked chunk lazy loader[sqlite store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
15.2 ms15.1 ms
Create a timeline with initial events[10000 events]
benchmarks/benches/timeline.rs::room::create_timeline_with_initial_events::Create a timeline
CodSpeed Performance Gauge
0%
728.2 ms725.5 ms
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
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%
460.3 ms459.7 ms
Devices collecting [SQLite][2003 devices]
benchmarks/benches/crypto_bench.rs::benches::devices_missing_sessions_collecting::Devices missing sessions collecting
CodSpeed Performance Gauge
0%
100.9 ms100.7 ms
Linked chunk metadata loader[sqlite store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
228.2 µs227.9 µs
Linked chunk lazy loader[memory store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
190.5 µs190.3 µs
Restore session [memory store]
benchmarks/benches/store_bench.rs::benches::restore_session::Client reload
CodSpeed Performance Gauge
0%
268.6 ms268.3 ms
Room key sharing [SQLite][163 devices]
benchmarks/benches/crypto_bench.rs::benches::room_key_sharing::Room key sharing
CodSpeed Performance Gauge
0%
57.5 ms57.4 ms
Linked chunk metadata loader[memory store][100]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
19.8 µs19.7 µs
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
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 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.6 s1.6 s
Linked chunk metadata loader[memory store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
5.7 µs5.7 µs
Restore session [SQLite][encrypted]
benchmarks/benches/store_bench.rs::benches::restore_session::Client reload
CodSpeed Performance Gauge
0%
1.3 s1.3 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 [none][1000]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
823.3 µs823.2 µs
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.8 ms46.8 ms
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
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
0%
43.3 ms43.3 ms
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][100 events, edits filter]
benchmarks/benches/event_cache.rs::event_cache::find_event_relations::Event cache room updates
CodSpeed Performance Gauge
0%
46.8 ms46.8 ms
Linked chunk writing [none][10]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
15.7 µs15.7 µs
Linked chunk metadata loader[sqlite store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
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 writing [sqlite store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
33.3 ms33.4 ms
Linked chunk writing [sqlite store][10]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
585.9 µs586.4 µs
Linked chunk writing [none][100]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
87.6 µs87.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
0%
968.9 µs970.3 µs
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
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.9 ms
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
0%
4.9 s4.9 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%
39 ms39.1 ms
Linked chunk writing [memory store][10]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
52.5 µs52.7 µs
Linked chunk writing [sqlite store][100]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
0%
3 ms3 ms
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
0%
908.9 µs912.1 µs
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
0%
72.8 ms73.1 ms
Linked chunk lazy loader[memory store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
0%
33.9 µs34 µs
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
-1%
68.2 ms68.5 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
-1%
157.8 ms158.7 ms
Linked chunk metadata loader[memory store][1000]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
-1%
677.3 µs681.9 µs
Linked chunk writing [memory store][100]
benchmarks/benches/linked_chunk.rs::event_cache::writing::Linked chunk writing
CodSpeed Performance Gauge
-1%
364.5 µs367.3 µs
Linked chunk metadata loader[sqlite store][10]
benchmarks/benches/linked_chunk.rs::event_cache::reading::Linked chunk reading
CodSpeed Performance Gauge
-1%
155.5 µs156.8 µ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
-9%
14.1 ms15.6 ms

Commits

Click on a commit to change the comparison range
Base
main
238e4e8
-35.86%
fix(sdk): Better handling of redacted and redaction events in Latest Event. This patch revisits the way redacted and redaction events are handled in the Latest Event. Previously, all redacted events were considered suitable candidate. It's no longer the case. Only redaction event (`m.room.redaction`) are considered suitable candidate if and only if it targets the immediate previous event, and if and only if the previous event is itself a suitable candidate. To achieve so, the `rfind_map_event_in_memory_by` method is revisited to return the `&TimelineEvent` instead of the `OwnedEventId`. The tests have been updated accordingly.
2a0d06f
16 hours ago
by Hywan
+35.88%
!fixup
61bc261
15 hours ago
by Hywan
© 2025 CodSpeed Technology
Home Terms Privacy Docs