From 213be3d6bd2400a6d0d1e456f5a819b43cbe6746 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 20 Dec 2022 17:27:27 -0800 Subject: [PATCH] Delete stale projects after cleanup interval, via server foreign key cascade --- crates/collab/src/db.rs | 30 +----------------------------- crates/collab/src/rpc.rs | 12 +----------- 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index 4cdf1d38ef..7ef7edd8cc 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -123,34 +123,6 @@ impl Database { .await } - pub async fn delete_stale_projects( - &self, - environment: &str, - new_server_id: ServerId, - ) -> Result<()> { - self.transaction(|tx| async move { - let stale_server_epochs = self - .stale_server_ids(environment, new_server_id, &tx) - .await?; - project_collaborator::Entity::delete_many() - .filter( - project_collaborator::Column::ConnectionServerId - .is_in(stale_server_epochs.iter().copied()), - ) - .exec(&*tx) - .await?; - project::Entity::delete_many() - .filter( - project::Column::HostConnectionServerId - .is_in(stale_server_epochs.iter().copied()), - ) - .exec(&*tx) - .await?; - Ok(()) - }) - .await - } - pub async fn stale_room_ids( &self, environment: &str, @@ -235,8 +207,8 @@ impl Database { pub async fn delete_stale_servers( &self, - new_server_id: ServerId, environment: &str, + new_server_id: ServerId, ) -> Result<()> { self.transaction(|tx| async move { server::Entity::delete_many() diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 510f864aa4..d7cff90d61 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -250,16 +250,6 @@ impl Server { let live_kit_client = self.app_state.live_kit_client.clone(); let span = info_span!("start server"); - let span_enter = span.enter(); - - tracing::info!("begin deleting stale projects"); - app_state - .db - .delete_stale_projects(&app_state.config.zed_environment, server_id) - .await?; - tracing::info!("finish deleting stale projects"); - - drop(span_enter); self.executor.spawn_detached( async move { tracing::info!("waiting for cleanup timeout"); @@ -355,7 +345,7 @@ impl Server { app_state .db - .delete_stale_servers(server_id, &app_state.config.zed_environment) + .delete_stale_servers(&app_state.config.zed_environment, server_id) .await .trace_err(); }