tree fe19b8e62f9933dbd28b9501f4e2cd0a6679c146
parent 07d119d34066eb85adeeaa9930092a233bd2d8c1
author Luca Milanesio <luca.milanesio@gmail.com> 1712638037 -0700
committer Luca Milanesio <luca.milanesio@gmail.com> 1712696410 +0000

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
