From 3106d0313507f016006f42a8a46f22850ffd9fe1 Mon Sep 17 00:00:00 2001 From: anti Date: Fri, 17 Apr 2026 19:11:07 -0400 Subject: [PATCH] perf(db): default pool_pre_ping=false for SQLite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SQLite is a local file — a SELECT 1 per session checkout is pure overhead. Env var DECNET_DB_POOL_PRE_PING stays for anyone running on a network-mounted volume. MySQL backend keeps its current default. --- decnet/web/db/sqlite/database.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/decnet/web/db/sqlite/database.py b/decnet/web/db/sqlite/database.py index b1b99af..e446958 100644 --- a/decnet/web/db/sqlite/database.py +++ b/decnet/web/db/sqlite/database.py @@ -18,7 +18,9 @@ def get_async_engine(db_path: str) -> AsyncEngine: max_overflow = int(os.environ.get("DECNET_DB_MAX_OVERFLOW", "40")) pool_recycle = int(os.environ.get("DECNET_DB_POOL_RECYCLE", "3600")) - pool_pre_ping = os.environ.get("DECNET_DB_POOL_PRE_PING", "true").lower() == "true" + # SQLite is a local file — dead-connection probes are pure overhead. + # Env var stays for network-mounted setups that still want it. + pool_pre_ping = os.environ.get("DECNET_DB_POOL_PRE_PING", "false").lower() == "true" engine = create_async_engine( f"{prefix}{db_path}",