From 28cd8beb77552fcbd27398e8de9c0e95ce28131c Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Wed, 12 Feb 2025 16:59:28 +0100 Subject: [PATCH] refactor(event cache): rename `Deduplicator` to `BloomFilterDeduplicator` --- crates/matrix-sdk/src/event_cache/deduplicator.rs | 14 +++++++------- crates/matrix-sdk/src/event_cache/room/mod.rs | 9 +++++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/crates/matrix-sdk/src/event_cache/deduplicator.rs b/crates/matrix-sdk/src/event_cache/deduplicator.rs index d84807f37..c9b8e7cd6 100644 --- a/crates/matrix-sdk/src/event_cache/deduplicator.rs +++ b/crates/matrix-sdk/src/event_cache/deduplicator.rs @@ -31,17 +31,17 @@ use super::room::events::{Event, RoomEvents}; /// positive or not /// /// [bloom filter]: https://en.wikipedia.org/wiki/Bloom_filter -pub struct Deduplicator { +pub struct BloomFilterDeduplicator { bloom_filter: Mutex, } -impl fmt::Debug for Deduplicator { +impl fmt::Debug for BloomFilterDeduplicator { fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { formatter.debug_struct("Deduplicator").finish_non_exhaustive() } } -impl Deduplicator { +impl BloomFilterDeduplicator { // Note: don't use too high numbers here, or the amount of allocated memory will // explode. See https://github.com/matrix-org/matrix-rust-sdk/pull/4231 for details. const APPROXIMATED_MAXIMUM_NUMBER_OF_EVENTS: usize = 1_000; @@ -179,7 +179,7 @@ mod tests { let event_1 = sync_timeline_event(&event_id_1); let event_2 = sync_timeline_event(&event_id_2); - let deduplicator = Deduplicator::new(); + let deduplicator = BloomFilterDeduplicator::new(); let existing_events = RoomEvents::new(); let mut events = @@ -205,7 +205,7 @@ mod tests { let event_0 = sync_timeline_event(&event_id_0); let event_1 = sync_timeline_event(&event_id_1); - let deduplicator = Deduplicator::new(); + let deduplicator = BloomFilterDeduplicator::new(); let existing_events = RoomEvents::new(); let mut events = deduplicator.scan_and_learn( @@ -240,7 +240,7 @@ mod tests { let event_1 = sync_timeline_event(&event_id_1); let event_2 = sync_timeline_event(&event_id_2); - let deduplicator = Deduplicator::new(); + let deduplicator = BloomFilterDeduplicator::new(); let mut existing_events = RoomEvents::new(); // Simulate `event_1` is inserted inside `existing_events`. @@ -305,7 +305,7 @@ mod tests { let mut dedups = Vec::with_capacity(num_rooms); for _ in 0..num_rooms { - let dedup = Deduplicator::new(); + let dedup = BloomFilterDeduplicator::new(); let existing_events = RoomEvents::new(); for i in 0..num_events { diff --git a/crates/matrix-sdk/src/event_cache/room/mod.rs b/crates/matrix-sdk/src/event_cache/room/mod.rs index 7473001d9..b31bc228c 100644 --- a/crates/matrix-sdk/src/event_cache/room/mod.rs +++ b/crates/matrix-sdk/src/event_cache/room/mod.rs @@ -544,7 +544,7 @@ mod private { use super::{chunk_debug_string, events::RoomEvents}; use crate::event_cache::{ - deduplicator::{Decoration, Deduplicator}, + deduplicator::{BloomFilterDeduplicator, Decoration}, EventCacheError, }; @@ -566,7 +566,7 @@ mod private { events: RoomEvents, /// The events deduplicator instance to help finding duplicates. - deduplicator: Deduplicator, + deduplicator: BloomFilterDeduplicator, /// Have we ever waited for a previous-batch-token to come from sync, in /// the context of pagination? We do this at most once per room, @@ -628,8 +628,9 @@ mod private { RoomEvents::default() }; - let deduplicator = - Deduplicator::with_initial_events(events.events().map(|(_pos, event)| event)); + let deduplicator = BloomFilterDeduplicator::with_initial_events( + events.events().map(|(_pos, event)| event), + ); Ok(Self { room, store, events, deduplicator, waited_for_initial_prev_token: false }) }