Ignore multi-site version refs from global-refdb checks

Global-refdb checks should skip the refs/multi-site/version/*
refs because they are meant to be tracing the local refdb
versioning across the different Gerrit sites.

Use the new global-refdb library v3.3.1 that allows to specify
the list of refs to ignored.

Also global-refdb library uses provided plugin name as a prefix for
metrics.

Bug: Issue 13971
Change-Id: I9d452809d7a8de9c2c4e4cd21af492be5bfb77bf
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index c2f45a0..82cd5e8 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -3,8 +3,8 @@
 def external_plugin_deps():
     maven_jar(
         name = "global-refdb",
-        artifact = "com.gerritforge:global-refdb:3.3.0-rc1",
-        sha1 = "1b005b31c27a30ff10de97f903fa2834051bcadf",
+        artifact = "com.gerritforge:global-refdb:3.3.1",
+        sha1 = "5df9dddad2fc67c922406f41549186b210cd957e",
     )
 
     maven_jar(
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
index d6fa749..81e1c12 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -82,7 +82,9 @@
     projects = memoize(() -> new Projects(lazyMultiSiteCfg));
     sharedRefDb =
         memoize(
-            () -> new SharedRefDbConfiguration(enableSharedRefDbByDefault(lazyMultiSiteCfg.get())));
+            () ->
+                new SharedRefDbConfiguration(
+                    enableSharedRefDbByDefault(lazyMultiSiteCfg.get()), PLUGIN_NAME));
     broker = memoize(() -> new Broker(lazyMultiSiteCfg));
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java
index 1d9d2c4..16fa09a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java
@@ -29,15 +29,19 @@
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.CustomSharedRefEnforcementByProject;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
+import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.extensions.config.FactoryModule;
 import com.google.gerrit.extensions.registration.DynamicItem;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.inject.Scopes;
+import com.google.inject.TypeLiteral;
+import com.google.inject.name.Names;
 import com.googlesource.gerrit.plugins.multisite.Configuration;
 import com.googlesource.gerrit.plugins.multisite.Log4jProjectVersionLogger;
 import com.googlesource.gerrit.plugins.multisite.ProjectVersionLogger;
 import com.googlesource.gerrit.plugins.replication.ReplicationExtensionPointModule;
 import com.googlesource.gerrit.plugins.replication.ReplicationPushFilter;
+import java.util.Set;
 
 public class ValidationModule extends FactoryModule {
   private final Configuration cfg;
@@ -63,6 +67,12 @@
     factory(BatchRefUpdateValidator.Factory.class);
 
     bind(SharedRefDbConfiguration.class).toInstance(cfg.getSharedRefDbConfiguration());
+    bind(new TypeLiteral<Set<String>>() {})
+        .annotatedWith(Names.named(SharedRefDbGitRepositoryManager.IGNORED_REFS))
+        .toInstance(
+            ImmutableSet.of(
+                ProjectVersionRefUpdate.MULTI_SITE_VERSIONING_REF,
+                ProjectVersionRefUpdate.MULTI_SITE_VERSIONING_VALUE_REF));
     bind(GitRepositoryManager.class).to(SharedRefDbGitRepositoryManager.class);
     DynamicItem.bind(binder(), ReplicationPushFilter.class)
         .to(MultisiteReplicationPushFilter.class);