diff options
author | Hugo Arès <hugo.ares@ericsson.com> | 2016-06-27 10:23:17 -0400 |
---|---|---|
committer | Hugo Arès <hugo.ares@ericsson.com> | 2016-09-20 13:47:13 +0200 |
commit | 4734437557d9915c3ed8f7f9ef9e3f3c090bf95c (patch) | |
tree | 64da6481c9036b564effdbe62391faf680eae6a7 | |
parent | 2ff75c8d432a2394a449cd277cccd973065d8ed1 (diff) |
Expose JGit repository cache configuration parameters
Allow to configure core.repositoryCacheCleanupDelay and
core.repositoryCacheExpireAfter parameters in gerrit.config.
Change-Id: I8e0d7f0a4154d56759d89c38f9118fd72a7ee953
-rw-r--r-- | Documentation/config-gerrit.txt | 27 | ||||
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java | 5 |
2 files changed, 32 insertions, 0 deletions
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 27c8f0f9fb..a956d522bd 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -1412,6 +1412,33 @@ that are merged have more than one common predecessor. + Default is true. +[[core.repositoryCacheCleanupDelay]]core.repositoryCacheCleanupDelay:: ++ +Delay between each periodic cleanup of expired repositories. ++ +Values can be specified using standard time unit abbreviations (`ms`, `sec`, +`min`, etc.). ++ +Set it to 0 in order to switch off cache expiration. If cache expiration is +switched off, the JVM can still evict cache entries when it is running low +on available heap memory. ++ +Set it to -1 to automatically derive cleanup delay from +`core.repositoryCacheExpireAfter` (lowest value between 1/10 of +`core.repositoryCacheExpireAfter` and 10 minutes). ++ +Default is -1. + +[[core.repositoryCacheExpireAfter]]core.repositoryCacheExpireAfter:: ++ +Time an unused repository should expire and be evicted from the repository +cache. ++ +Values can be specified using standard time unit abbreviations (`ms`, `sec`, +`min`, etc.). ++ +Default is 1 hour. + [[database]] === Section database diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java index 093d036b23..ad5cf20650 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java @@ -31,6 +31,7 @@ import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryCache; import org.eclipse.jgit.lib.RepositoryCache.FileKey; +import org.eclipse.jgit.lib.RepositoryCacheConfig; import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.storage.file.WindowCacheConfig; import org.eclipse.jgit.util.FS; @@ -84,6 +85,10 @@ public class LocalDiskRepositoryManager implements GitRepositoryManager, @Override public void start() { + RepositoryCacheConfig repoCacheCfg = new RepositoryCacheConfig(); + repoCacheCfg.fromConfig(serverConfig); + repoCacheCfg.install(); + WindowCacheConfig cfg = new WindowCacheConfig(); cfg.fromConfig(serverConfig); if (serverConfig.getString("core", null, "streamFileThreshold") == null) { |