History

Switch to using weak transactions for queries happening on connection (#32411)

Release Notes: - N/A

Antonio Scandurra committed 1 year ago

Commit c4fd9e11 parent 0b7583b3 files · +7 −5Browse files

Unified · Split

3 files
  1. crates/collab/src/db/queries/channels.rs +4 −2
  2. crates/collab/src/db/queries/contacts.rs +2 −2
  3. crates/collab/src/db/queries/rooms.rs +1 −1
crates/collab/src/db/queries/channels.rs+4−2
@@ -501,8 +501,10 @@ impl Database { · 500 unmodified lines
501501
502502 /// Returns all channels for the user with the given ID.
503503 pub async fn get_channels_for_user(&self, user_id: UserId) -> Result<ChannelsForUser> {
504− self.transaction(|tx| async move { self.get_user_channels(user_id, None, true, &tx).await })
505− .await
504+ self.weak_transaction(
505+ |tx| async move { self.get_user_channels(user_id, None, true, &tx).await },
506+ )
507+ .await
506508 }
507509
508510 /// Returns all channels for the user with the given ID that are descendants
crates/collab/src/db/queries/contacts.rs+2−2
@@ -15,7 +15,7 @@ impl Database { · 14 unmodified lines
1515 user_b_busy: bool,
1616 }
1717
18− self.transaction(|tx| async move {
18+ self.weak_transaction(|tx| async move {
1919 let user_a_participant = Alias::new("user_a_participant");
2020 let user_b_participant = Alias::new("user_b_participant");
2121 let mut db_contacts = contact::Entity::find()
@@ -91,7 +91,7 @@ impl Database { · 69 unmodified lines
9191
9292 /// Returns whether the given user is a busy (on a call).
9393 pub async fn is_user_busy(&self, user_id: UserId) -> Result<bool> {
94− self.transaction(|tx| async move {
94+ self.weak_transaction(|tx| async move {
9595 let participant = room_participant::Entity::find()
9696 .filter(room_participant::Column::UserId.eq(user_id))
9797 .one(&*tx)
crates/collab/src/db/queries/rooms.rs+1−1
@@ -80,7 +80,7 @@ impl Database { · 79 unmodified lines
8080 &self,
8181 user_id: UserId,
8282 ) -> Result<Option<proto::IncomingCall>> {
83− self.transaction(|tx| async move {
83+ self.weak_transaction(|tx| async move {
8484 let pending_participant = room_participant::Entity::find()
8585 .filter(
8686 room_participant::Column::UserId