Use persistent cache provided by libModule for offline reindex
Gerrit offline reindexing ignores persistent cache implementation provided as libModule and always generates caches using H2 implementation. This fix allows to use a different persistent cache backend. Using different cache implementation during the offline reindexing and at runtime causes situation when Gerrit starts without any precomputed caches which significantly impacts overall performance. On the other hand offline reindexing cannot reuse existing caches which impacts reindexing performance. Bug: Issue 13464 Change-Id: I36305282e8ea583dfb37f629e41d219762c3b4a3
This commit is contained in:
@@ -29,6 +29,10 @@ import com.google.gerrit.lifecycle.LifecycleManager;
|
||||
import com.google.gerrit.lucene.LuceneIndexModule;
|
||||
import com.google.gerrit.pgm.util.BatchProgramModule;
|
||||
import com.google.gerrit.pgm.util.SiteProgram;
|
||||
import com.google.gerrit.server.LibModuleLoader;
|
||||
import com.google.gerrit.server.LibModuleType;
|
||||
import com.google.gerrit.server.ModuleOverloader;
|
||||
import com.google.gerrit.server.cache.h2.H2CacheModule;
|
||||
import com.google.gerrit.server.change.ChangeResource;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
import com.google.gerrit.server.index.IndexModule;
|
||||
@@ -159,6 +163,7 @@ public class Reindex extends SiteProgram {
|
||||
}
|
||||
modules.add(indexModule);
|
||||
modules.add(new BatchProgramModule());
|
||||
modules.add(new H2CacheModule());
|
||||
modules.add(
|
||||
new FactoryModule() {
|
||||
@Override
|
||||
@@ -167,7 +172,9 @@ public class Reindex extends SiteProgram {
|
||||
}
|
||||
});
|
||||
|
||||
return dbInjector.createChildInjector(modules);
|
||||
return dbInjector.createChildInjector(
|
||||
ModuleOverloader.override(
|
||||
modules, LibModuleLoader.loadModules(dbInjector, LibModuleType.SYS_MODULE)));
|
||||
}
|
||||
|
||||
private void overrideConfig() {
|
||||
|
@@ -38,7 +38,6 @@ import com.google.gerrit.server.account.Realm;
|
||||
import com.google.gerrit.server.account.ServiceUserClassifierImpl;
|
||||
import com.google.gerrit.server.account.externalids.ExternalIdModule;
|
||||
import com.google.gerrit.server.cache.CacheRemovalListener;
|
||||
import com.google.gerrit.server.cache.h2.H2CacheModule;
|
||||
import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule;
|
||||
import com.google.gerrit.server.change.ChangeAttributeFactory;
|
||||
import com.google.gerrit.server.change.ChangeJson;
|
||||
@@ -153,7 +152,7 @@ public class BatchProgramModule extends FactoryModule {
|
||||
install(new BatchGitModule());
|
||||
install(new DefaultPermissionBackendModule());
|
||||
install(new DefaultMemoryCacheModule());
|
||||
install(new H2CacheModule());
|
||||
|
||||
install(new ExternalIdModule());
|
||||
install(new GroupModule());
|
||||
install(new NoteDbModule());
|
||||
|
Reference in New Issue
Block a user