From 2880facc4cf89644a598b833fda9b32ab1d11ed9 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 16 Jan 2026 08:52:57 +0000 Subject: [PATCH] Replace hardcoded pool worker limit with configurable default. Signed-off-by: Jason Volk --- docker/Dockerfile.complement | 4 +++- docker/Dockerfile.smoketest | 4 +++- src/core/config/mod.rs | 16 ++++++++++++++++ src/database/pool.rs | 4 ++-- src/database/pool/configure.rs | 1 + tuwunel-example.toml | 12 ++++++++++++ 6 files changed, 37 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.complement b/docker/Dockerfile.complement index 9abe80be..9d459a87 100644 --- a/docker/Dockerfile.complement +++ b/docker/Dockerfile.complement @@ -111,6 +111,7 @@ ENTRYPOINT tuwunel -Oserver_name=\""$SERVER_NAME\"" FROM input AS complement-testee-valgrind +ARG db_pool_max_workers=128 EXPOSE 8008 8448 RUN mkdir /database @@ -122,7 +123,8 @@ ENTRYPOINT valgrind \ --exit-on-first-error=yes \ --error-exitcode=1 \ tuwunel \ - -Oserver_name=\""$SERVER_NAME\"" + -Oserver_name=\""$SERVER_NAME\"" \ + -Odb_pool_max_workers=${db_pool_max_workers} FROM input AS complement-base diff --git a/docker/Dockerfile.smoketest b/docker/Dockerfile.smoketest index 6b9f0900..25850c33 100644 --- a/docker/Dockerfile.smoketest +++ b/docker/Dockerfile.smoketest @@ -28,6 +28,7 @@ EOF FROM input AS smoke-valgrind ARG leak_check="no" ARG undef_value_errors="no" +ARG db_pool_max_workers=128 COPY --link --from=input . . ENV TUWUNEL_LOG="info" ENV TUWUNEL_DATABASE_PATH="/tmp/smoketest.db" @@ -42,7 +43,8 @@ RUN < usize { fn default_db_pool_workers_limit() -> usize { 64 } +fn default_db_pool_max_workers() -> usize { 2048 } + fn default_db_pool_queue_mult() -> usize { 4 } fn default_stream_width_default() -> usize { 32 } diff --git a/src/database/pool.rs b/src/database/pool.rs index 3ecb9036..321c75b7 100644 --- a/src/database/pool.rs +++ b/src/database/pool.rs @@ -65,8 +65,8 @@ pub(crate) type BatchQuery<'a> = SmallVec<[KeyBuf; BATCH_INLINE]>; pub(crate) type BatchResult<'a> = SmallVec<[ResultHandle<'a>; BATCH_INLINE]>; pub(crate) type ResultHandle<'a> = Result>; -const WORKER_LIMIT: (usize, usize) = (1, 1024); -const QUEUE_LIMIT: (usize, usize) = (1, 4096); +const WORKER_LIMIT: (usize, usize) = (1, 4096); +const QUEUE_LIMIT: (usize, usize) = (1, 1024); const BATCH_INLINE: usize = 1; const WORKER_STACK_SIZE: usize = 1_048_576; diff --git a/src/database/pool/configure.rs b/src/database/pool/configure.rs index 2b058a53..2503862b 100644 --- a/src/database/pool/configure.rs +++ b/src/database/pool/configure.rs @@ -124,6 +124,7 @@ pub(super) fn configure(server: &Arc) -> (Vec, Vec, Vec