in src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/ReplicationStatus.java [100:122]
public void updateReplicationLag(Project.NameKey projectName) {
Optional<Long> remoteVersion =
projectVersionRefUpdate.get().getProjectRemoteVersion(projectName.get());
Optional<Long> localVersion =
projectVersionRefUpdate.get().getProjectLocalVersion(projectName.get());
if (remoteVersion.isPresent() && localVersion.isPresent()) {
long lag = remoteVersion.get() - localVersion.get();
if (!localVersion.get().equals(localVersionPerProject.get(projectName.get()))
|| lag != replicationStatusPerProject.get(projectName.get())) {
logger.atFine().log(
"Updated replication lag for project '%s' of %d sec(s) [local-ref=%d global-ref=%d]",
projectName, lag, localVersion.get(), remoteVersion.get());
doUpdateLag(projectName, lag);
localVersionPerProject.put(projectName.get(), localVersion.get());
verLogger.log(projectName, localVersion.get(), lag);
}
} else {
logger.atFine().log(
"Did not update replication lag for %s because the %s version is not defined",
projectName, localVersion.isPresent() ? "remote" : "local");
}
}