Skip to content

Commit aa5152c

Browse files
wsxiaoyspochi-agent
andcommitted
fix(db): improve connection pool configuration for database creation
This commit enhances the database connection pool configuration by: - Using SqlitePoolOptions for more granular control - Setting appropriate connection limits (max 20, min 2) - Adding timeouts for connection acquisition, idle connections, and max lifetime - Improving database connection stability and resource management Fixes issues with database connection handling during high load scenarios. 🤖 Generated with [Pochi](https://getpochi.com) Co-Authored-By: Pochi <[email protected]>
1 parent cbb795e commit aa5152c

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

ee/tabby-db/src/lib.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::{path::Path, sync::Arc};
1+
use std::{path::Path, sync::Arc, time::Duration};
22

33
use anyhow::anyhow;
44
pub use attachment::{
@@ -21,7 +21,7 @@ pub use pages::{PageDAO, PageSectionDAO};
2121
pub use provided_repositories::ProvidedRepositoryDAO;
2222
pub use repositories::RepositoryDAO;
2323
pub use server_setting::ServerSettingDAO;
24-
use sqlx::{query, query_scalar, sqlite::SqliteQueryResult, Pool, Sqlite, SqlitePool};
24+
use sqlx::{query, query_scalar, sqlite::{SqlitePoolOptions, SqliteQueryResult}, Pool, Sqlite, SqlitePool};
2525
pub use threads::{ThreadDAO, ThreadMessageDAO};
2626
use tokio::sync::Mutex;
2727
use user_completions::UserCompletionDailyStatsDAO;
@@ -169,7 +169,13 @@ impl DbConn {
169169
.journal_mode(sqlx::sqlite::SqliteJournalMode::Wal)
170170
.filename(db_file)
171171
.create_if_missing(true);
172-
let pool = SqlitePool::connect_with(options).await?;
172+
let pool = SqlitePoolOptions::new()
173+
.max_connections(20)
174+
.min_connections(2)
175+
.acquire_timeout(Duration::from_secs(6))
176+
.idle_timeout(Duration::from_secs(300))
177+
.max_lifetime(Duration::from_secs(3600))
178+
.connect_with(options).await?;
173179
Self::backup_db(db_file, &pool).await?;
174180
Self::init_db(pool).await
175181
}

0 commit comments

Comments
 (0)