diff options
author | Luca Milanesio <luca.milanesio@gmail.com> | 2022-06-01 22:56:17 -0700 |
---|---|---|
committer | Luca Milanesio <luca.milanesio@gmail.com> | 2022-06-02 01:08:53 -0700 |
commit | f38eb6de6c352d0de07ff4ddd71c55bc8aab6e3f (patch) | |
tree | c5be8a98eb5d091fcf74f2a45be3f5a552c6099c | |
parent | 06f9ed20939c5b4c38044e4bbc7476b0c6700189 (diff) |
Allow async receive-commits to have a thread-local cache
Git receive-commits are executed in a background thread of the
ReceiveCommits pool. The thread-local cache allocated on the
client caller thread isn't used in the execution of the command
making multiple operations (e.g. ACL evaluation, events propagation)
slower because of the missed caching activity.
Release-Notes: Improve caching when merging changes through git push
Change-Id: I34a6e1485294f3156c7f35261fedfc280af1ed43
-rw-r--r-- | java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java b/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java index 882f2083a4..fa4ba4c5e0 100644 --- a/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java +++ b/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java @@ -32,6 +32,7 @@ import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.UsedAt; +import com.google.gerrit.server.cache.PerThreadCache; import com.google.gerrit.server.config.ConfigUtil; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.ReceiveCommitsExecutor; @@ -125,7 +126,9 @@ public class AsyncReceiveCommits implements PreReceiveHook { @Override public void run() { - receiveCommits.processCommands(commands, progress); + try (PerThreadCache threadLocalCache = PerThreadCache.create(null)) { + receiveCommits.processCommands(commands, progress); + } } @Override |