Timo Kösters 2021-08-21 14:24:10 +02:00
parent 4956fb9fba
commit 3b78e43a18
No known key found for this signature in database
GPG Key ID: 24DA7517711A2BA4
2 changed files with 45 additions and 33 deletions

View File

@ -636,48 +636,60 @@ impl Database {
if db.globals.database_version()? < 9 { if db.globals.database_version()? < 9 {
// Update tokenids db layout // Update tokenids db layout
let batch = db.rooms.tokenids.iter().filter_map(|(key, _)| { let batch = db
if !key.starts_with(b"!") { .rooms
return None; .tokenids
} .iter()
let mut parts = key.splitn(4, |&b| b == 0xff); .filter_map(|(key, _)| {
let room_id = parts.next().unwrap(); if !key.starts_with(b"!") {
let word = parts.next().unwrap(); return None;
let _pdu_id_room = parts.next().unwrap(); }
let pdu_id_count = parts.next().unwrap(); let mut parts = key.splitn(4, |&b| b == 0xff);
let room_id = parts.next().unwrap();
let word = parts.next().unwrap();
let _pdu_id_room = parts.next().unwrap();
let pdu_id_count = parts.next().unwrap();
let short_room_id = db let short_room_id = db
.rooms .rooms
.roomid_shortroomid .roomid_shortroomid
.get(&room_id) .get(&room_id)
.unwrap() .unwrap()
.expect("shortroomid should exist"); .expect("shortroomid should exist");
let mut new_key = short_room_id; let mut new_key = short_room_id;
new_key.extend_from_slice(word); new_key.extend_from_slice(word);
new_key.push(0xff); new_key.push(0xff);
new_key.extend_from_slice(pdu_id_count); new_key.extend_from_slice(pdu_id_count);
println!("old {:?}", key); println!("old {:?}", key);
println!("new {:?}", new_key); println!("new {:?}", new_key);
Some((new_key, Vec::new())) Some((new_key, Vec::new()))
}).collect::<Vec<_>>(); })
.collect::<Vec<_>>();
let mut iter = batch.into_iter().peekable(); let mut iter = batch.into_iter().peekable();
while iter.peek().is_some() { while iter.peek().is_some() {
db.rooms.tokenids.insert_batch(&mut iter.by_ref().take(1000))?; db.rooms
.tokenids
.insert_batch(&mut iter.by_ref().take(1000))?;
println!("smaller batch done"); println!("smaller batch done");
} }
println!("Deleting starts"); println!("Deleting starts");
let batch2 = db.rooms.tokenids.iter().filter_map(|(key, _)| { let batch2 = db
if key.starts_with(b"!") { .rooms
println!("del {:?}", key); .tokenids
Some(key) .iter()
} else { .filter_map(|(key, _)| {
None if key.starts_with(b"!") {
} println!("del {:?}", key);
}).collect::<Vec<_>>(); Some(key)
} else {
None
}
})
.collect::<Vec<_>>();
for key in batch2 { for key in batch2 {
println!("del"); println!("del");

View File

@ -912,7 +912,7 @@ pub async fn handle_incoming_pdu<'a>(
// Max limit reached // Max limit reached
warn!("Max prev event limit reached!"); warn!("Max prev event limit reached!");
graph.insert(prev_event_id.clone(), HashSet::new()); graph.insert(prev_event_id.clone(), HashSet::new());
continue continue;
} }
if let Some(json) = if let Some(json) =