improvement: less IO for auth chains
This commit is contained in:
parent
33172a70e6
commit
a1e8a99db5
1 changed files with 3 additions and 13 deletions
|
@ -1980,15 +1980,9 @@ fn get_auth_chain(
|
|||
let mut buckets = vec![BTreeSet::new(); NUM_BUCKETS];
|
||||
|
||||
for id in starting_events {
|
||||
if let Some(pdu) = db.rooms.get_pdu(&id)? {
|
||||
for auth_event in &pdu.auth_events {
|
||||
let short = db
|
||||
.rooms
|
||||
.get_or_create_shorteventid(&auth_event, &db.globals)?;
|
||||
let bucket_id = (short % NUM_BUCKETS as u64) as usize;
|
||||
buckets[bucket_id].insert((short, auth_event.clone()));
|
||||
}
|
||||
}
|
||||
let short = db.rooms.get_or_create_shorteventid(&id, &db.globals)?;
|
||||
let bucket_id = (short % NUM_BUCKETS as u64) as usize;
|
||||
buckets[bucket_id].insert((short, id.clone()));
|
||||
}
|
||||
|
||||
let mut full_auth_chain = HashSet::new();
|
||||
|
@ -2000,10 +1994,6 @@ fn get_auth_chain(
|
|||
continue;
|
||||
}
|
||||
|
||||
// The code below will only get the auth chains, not the events in the chunk. So let's add
|
||||
// them first
|
||||
full_auth_chain.extend(chunk.iter().map(|(id, _)| id));
|
||||
|
||||
let chunk_key = chunk
|
||||
.iter()
|
||||
.map(|(short, _)| short)
|
||||
|
|
Loading…
Reference in a new issue