fix: less load when lazy loading
@@ -453,13 +453,13 @@ async fn sync_helper(
let joined_since_last_sync = since_sender_member
.map_or(true, |member| member.membership != MembershipState::Join);
- let current_state_ids = db.rooms.state_full_ids(current_shortstatehash)?;
-
- let since_state_ids = db.rooms.state_full_ids(since_shortstatehash)?;
-
let mut state_events = Vec::new();
let mut lazy_loaded = HashSet::new();
+ if since_shortstatehash != current_shortstatehash {
+ let current_state_ids = db.rooms.state_full_ids(current_shortstatehash)?;
+ let since_state_ids = db.rooms.state_full_ids(since_shortstatehash)?;
+
for (key, id) in current_state_ids {
if body.full_state || since_state_ids.get(&key) != Some(&id) {
let pdu = match db.rooms.get_pdu(&id)? {
@@ -487,6 +487,7 @@ async fn sync_helper(
state_events.push(pdu);
}
}
+ }
for (_, event) in &timeline_pdus {
if lazy_loaded.contains(&event.sender) {
