From 30d70aef09e097fa050b4554fccc2f114210ae35 Mon Sep 17 00:00:00 2001 From: Dariusz Luksza Date: Mon, 9 Nov 2015 22:19:59 +0100 Subject: [PATCH] Change default value of database.poolMaxIdle Set database.poolMaxIdle default value to minimum of database.poolIdle and 16. This way Gerrit keeps more active connections to database making in more responsive (since db connections are not initialized every time). Change-Id: If00796eb7ccd2cf88773a7f41a0e9eb1da875fe2 Signed-off-by: Dariusz Luksza --- Documentation/config-gerrit.txt | 2 +- .../com/google/gerrit/server/schema/DataSourceProvider.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 65dca948c2..12a958b6cc 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -1423,7 +1423,7 @@ This setting only applies if Maximum number of connections to keep idle in the pool. If there are more idle connections, connections will be closed instead of being returned back to the pool. -Default is 4. +Default is min(<>, 16). + This setting only applies if <> is true. diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/DataSourceProvider.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/DataSourceProvider.java index edce7f18a5..0c3bf673e4 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/DataSourceProvider.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/DataSourceProvider.java @@ -129,9 +129,11 @@ public class DataSourceProvider implements Provider, if (password != null && !password.isEmpty()) { ds.setPassword(password); } - ds.setMaxActive(threadSettingsConfig.getDatabasePoolLimit()); + int poolLimit = threadSettingsConfig.getDatabasePoolLimit(); + ds.setMaxActive(poolLimit); ds.setMinIdle(cfg.getInt("database", "poolminidle", 4)); - ds.setMaxIdle(cfg.getInt("database", "poolmaxidle", 4)); + ds.setMaxIdle( + cfg.getInt("database", "poolmaxidle", Math.min(poolLimit, 16))); ds.setMaxWait(ConfigUtil.getTimeUnit(cfg, "database", null, "poolmaxwait", MILLISECONDS.convert(30, SECONDS), MILLISECONDS)); ds.setInitialSize(ds.getMinIdle());