From 67e8304ae7e76fdc77c0f0653aee3c58d59ac106 Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Wed, 4 Sep 2013 11:07:48 -0700 Subject: [PATCH] PatchListLoader: Make saving automerged trees optional In a parallel batch reindexing situation, implementations may want to avoid high write throughput on the ref database caused by indiscriminately calling PatchListLoader.automerge() Change-Id: If87956b5352b266f717376462fe007cffa3b0b59 --- .../gerrit/server/patch/PatchListLoader.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java index 267ae49fee..e1294e09b6 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java @@ -243,6 +243,11 @@ public class PatchListLoader extends CacheLoader { public static RevTree automerge(Repository repo, RevWalk rw, RevCommit b) throws IOException { + return automerge(repo, rw, b, true); + } + + public static RevTree automerge(Repository repo, RevWalk rw, RevCommit b, + boolean save) throws IOException { String hash = b.name(); String refName = GitRepositoryManager.REFS_CACHE_AUTOMERGE + hash.substring(0, 2) @@ -373,10 +378,12 @@ public class PatchListLoader extends CacheLoader { ins.release(); } - RefUpdate update = repo.updateRef(refName); - update.setNewObjectId(treeId); - update.disableRefLog(); - update.forceUpdate(); + if (save) { + RefUpdate update = repo.updateRef(refName); + update.setNewObjectId(treeId); + update.disableRefLog(); + update.forceUpdate(); + } return rw.parseTree(treeId); }