mirror of
https://gitlab.com/famedly/conduit.git
synced 2024-11-04 17:18:51 +01:00
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];
|
let mut buckets = vec![BTreeSet::new(); NUM_BUCKETS];
|
||||||
|
|
||||||
for id in starting_events {
|
for id in starting_events {
|
||||||
if let Some(pdu) = db.rooms.get_pdu(&id)? {
|
let short = db.rooms.get_or_create_shorteventid(&id, &db.globals)?;
|
||||||
for auth_event in &pdu.auth_events {
|
let bucket_id = (short % NUM_BUCKETS as u64) as usize;
|
||||||
let short = db
|
buckets[bucket_id].insert((short, id.clone()));
|
||||||
.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 mut full_auth_chain = HashSet::new();
|
let mut full_auth_chain = HashSet::new();
|
||||||
|
@ -2000,10 +1994,6 @@ fn get_auth_chain(
|
||||||
continue;
|
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
|
let chunk_key = chunk
|
||||||
.iter()
|
.iter()
|
||||||
.map(|(short, _)| short)
|
.map(|(short, _)| short)
|
||||||
|
|
Loading…
Reference in a new issue