diff options
author | Nasser Grainawi <nasser@codeaurora.org> | 2021-11-18 00:26:59 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-11-18 00:26:59 +0000 |
commit | 682b67981ad2671fa7a1e3d4048edb6ba5a19e06 (patch) | |
tree | a26706f72cb77189a8bbf0da7dab3ed969f967b7 | |
parent | d59780842e7beb45c009180ac459477e09104b61 (diff) | |
parent | d775f79a0318a9d6936210b6519e3029cdad35f5 (diff) |
Merge "Fix AllProjectsIndexer to avoid duplicate reindex work" into stable-3.2
3 files changed, 17 insertions, 5 deletions
diff --git a/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java b/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java index cc7dca3806..0e4b688d6c 100644 --- a/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java +++ b/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java @@ -78,7 +78,7 @@ public class AllProjectsIndexer extends SiteIndexer<Project.NameKey, ProjectData executor.submit( () -> { try { - projectCache.evictAndReindex(name); + projectCache.evict(name); index.replace( projectCache.get(name).orElseThrow(illegalState(name)).toProjectData()); verboseWriter.println("Reindexed " + desc); diff --git a/java/com/google/gerrit/server/project/ProjectCache.java b/java/com/google/gerrit/server/project/ProjectCache.java index 6187af5f53..6a2ae50b35 100644 --- a/java/com/google/gerrit/server/project/ProjectCache.java +++ b/java/com/google/gerrit/server/project/ProjectCache.java @@ -59,6 +59,13 @@ public interface ProjectCache { Optional<ProjectState> get(@Nullable Project.NameKey projectName) throws StorageException; /** + * Invalidate the cached information about the given project. + * + * @param p the NameKey of the project that is being evicted + */ + void evict(Project.NameKey p); + + /** * Invalidate the cached information about the given project, and triggers reindexing for it * * @param p project that is being evicted diff --git a/java/com/google/gerrit/server/project/ProjectCacheImpl.java b/java/com/google/gerrit/server/project/ProjectCacheImpl.java index 4ab555538a..1523b1bb58 100644 --- a/java/com/google/gerrit/server/project/ProjectCacheImpl.java +++ b/java/com/google/gerrit/server/project/ProjectCacheImpl.java @@ -159,16 +159,21 @@ public class ProjectCacheImpl implements ProjectCache { } @Override + public void evict(Project.NameKey p) { + if (p != null) { + logger.atFine().log("Evict project '%s'", p.get()); + byName.invalidate(p.get()); + } + } + + @Override public void evictAndReindex(Project p) { evictAndReindex(p.getNameKey()); } @Override public void evictAndReindex(Project.NameKey p) { - if (p != null) { - logger.atFine().log("Evict project '%s'", p.get()); - byName.invalidate(p.get()); - } + evict(p); indexer.get().index(p); } |