From e495b804320e2f80804dc19c5ddcae6449abbfa0 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Thu, 2 Apr 2026 22:11:15 +0200 Subject: [PATCH] fix: increase ClickHouse pool size and reduce flush interval Pool was hardcoded to 10 connections serving 7 concurrent write streams + UI reads, causing "too many simultaneous queries" and WriteBuffer overflow. Pool now defaults to 50 (configurable via clickhouse.pool-size), flush interval reduced from 1000ms to 500ms. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/cameleer3/server/app/config/ClickHouseConfig.java | 4 +++- .../com/cameleer3/server/app/config/ClickHouseProperties.java | 4 ++++ cameleer3-server-app/src/main/resources/application.yml | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseConfig.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseConfig.java index 9f11f13f..8e170004 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseConfig.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseConfig.java @@ -39,7 +39,9 @@ public class ClickHouseConfig { ds.setJdbcUrl(props.getUrl()); ds.setUsername(props.getUsername()); ds.setPassword(props.getPassword()); - ds.setMaximumPoolSize(10); + ds.setMaximumPoolSize(props.getPoolSize()); + ds.setMinimumIdle(5); + ds.setConnectionTimeout(5000); ds.setPoolName("clickhouse-pool"); return ds; } diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseProperties.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseProperties.java index 461a8b42..e7dccc30 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseProperties.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseProperties.java @@ -8,6 +8,7 @@ public class ClickHouseProperties { private String url = "jdbc:clickhouse://localhost:8123/cameleer"; private String username = "default"; private String password = ""; + private int poolSize = 50; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @@ -17,4 +18,7 @@ public class ClickHouseProperties { public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } + + public int getPoolSize() { return poolSize; } + public void setPoolSize(int poolSize) { this.poolSize = poolSize; } } diff --git a/cameleer3-server-app/src/main/resources/application.yml b/cameleer3-server-app/src/main/resources/application.yml index 2d6375b8..93708b4f 100644 --- a/cameleer3-server-app/src/main/resources/application.yml +++ b/cameleer3-server-app/src/main/resources/application.yml @@ -35,7 +35,7 @@ agent-registry: ingestion: buffer-capacity: 50000 batch-size: 5000 - flush-interval-ms: 1000 + flush-interval-ms: 500 cameleer: body-size-limit: ${CAMELEER_BODY_SIZE_LIMIT:16384}