diff --git a/src/api/client/sync/v3.rs b/src/api/client/sync/v3.rs
index ea487d8e..77ba4c3f 100644
--- a/src/api/client/sync/v3.rs
+++ b/src/api/client/sync/v3.rs
@@ -757,7 +757,6 @@ async fn load_joined_room(
 						};
 
 						delta_state_events.push(pdu);
-						tokio::task::yield_now().await;
 					}
 				}
 			}
diff --git a/src/database/map/get.rs b/src/database/map/get.rs
index 2f7df031..a3c6c492 100644
--- a/src/database/map/get.rs
+++ b/src/database/map/get.rs
@@ -2,9 +2,10 @@ use std::{convert::AsRef, fmt::Debug, future::Future, io::Write};
 
 use arrayvec::ArrayVec;
 use conduit::{err, implement, utils::IterStream, Result};
-use futures::{future::ready, Stream};
+use futures::{FutureExt, Stream};
 use rocksdb::DBPinnableSlice;
 use serde::Serialize;
+use tokio::task;
 
 use crate::{ser, util, Handle};
 
@@ -55,7 +56,8 @@ pub fn get<K>(&self, key: &K) -> impl Future<Output = Result<Handle<'_>>> + Send
 where
 	K: AsRef<[u8]> + ?Sized + Debug,
 {
-	ready(self.get_blocking(key))
+	let result = self.get_blocking(key);
+	task::consume_budget().map(move |()| result)
 }
 
 /// Fetch a value from the database into cache, returning a reference-handle.