Update git submodules
* Update plugins/replication to 56b8ffbab5bf619c0b6b5d44f0255fd41b9e1c89
- Load replication configuration only once
Reuse the same instance across requests in ReplicationConfigImpl.
This avoids reloading the configuration from disk continuously.
Previously, the config was retrieved on-demand with the Provider<>.get()
paradigm. However, the Provider<>.get() would trigger the creation of a
new instance of the Config every time it is invoked, causing the full
scan and parsing of the replication configs.
On GerritHub.io, the processing of all replication configs (12k files)
would take around 5 minutes, causing a catastrophic overload of the CPU
and preventing the plugin that use ReplicationConfigImpl (replication
and pull-replication) to even start.
With regards to the configVersion, the description of the interface has
been amended to reflect the expected behaviour to report the
*latest actual* version on the storage, regardless of the in-memory copy.
The AutoReloadConfigDectorator relies on the configVersion to reflect
the storage version for triggering a configuration reload by forcibly
re-creating the config resources and therefore triggering the reload and
parsing of the replication configs from the underlying storage.
AutoReloadConfigDecorator should not reload the configuration again
in his constructor because the AutoReloadRunnable has already loaded
the initial state and therefore can reuse that one as valid starting
point.
Release-Notes: skip
Change-Id: I7992ea85d7c4875be3bef4635826dd27da2f91e5
diff --git a/plugins/replication b/plugins/replication
index aab6937..56b8ffb 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit aab69373db6152ea98e7627f816fa3d777d5fe46
+Subproject commit 56b8ffbab5bf619c0b6b5d44f0255fd41b9e1c89