diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 4881f2ac15..b88f1a3ac8 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -2400,10 +2400,10 @@ By default, `LUCENE`. [[index.threads]]index.threads:: + -Number of threads to use for indexing in normal interactive operations. If set -to 0, indexing will be done in the same thread as the interactive operation. +Number of threads to use for indexing in normal interactive operations. + -Defaults to 0 if not set, or set to a negative value. +If not set or set to a negative value, defaults to 1 plus half of the number of +logical CPUs as returned by the JVM. [[index.batchThreads]]index.batchThreads:: + diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/IndexModule.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/IndexModule.java index befd5ed7e0..a3d3ad5dd9 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/IndexModule.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/IndexModule.java @@ -140,7 +140,7 @@ public class IndexModule extends LifecycleModule { threads = config.getInt("index", null, "threads", 0); } if (threads <= 0) { - return MoreExecutors.newDirectExecutorService(); + threads = Runtime.getRuntime().availableProcessors() / 2 + 1; } return MoreExecutors.listeningDecorator( workQueue.createQueue(threads, "Index-Interactive"));