diff options
6 files changed, 14 insertions, 12 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java index d83636d08d6..2c0b7e090a6 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java @@ -45,7 +45,7 @@ public class ApplicationPackageMaintainer extends ConfigServerMaintainer { Curator curator, Duration interval, FlagSource flagSource) { - super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval); + super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval, false); this.applicationRepository = applicationRepository; this.configserverConfig = applicationRepository.configserverConfig(); this.supervisor = new Supervisor(new Transport("filedistribution-pool")).setDropEmptyBuffers(true); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java index 9d1901f83ed..ce068f4929e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java @@ -33,8 +33,8 @@ public abstract class ConfigServerMaintainer extends Maintainer { /** Creates a maintainer where maintainers on different nodes in this cluster run with even delay. */ ConfigServerMaintainer(ApplicationRepository applicationRepository, Curator curator, FlagSource flagSource, - Instant now, Duration interval) { - super(null, interval, now, new JobControl(new JobControlFlags(curator, flagSource)), + Instant now, Duration interval, boolean useLock) { + super(null, interval, now, new JobControl(new JobControlFlags(curator, flagSource, useLock)), new ConfigServerJobMetrics(applicationRepository.metric()), cluster(curator), false); this.applicationRepository = applicationRepository; } @@ -59,13 +59,15 @@ public abstract class ConfigServerMaintainer extends Maintainer { private static final Path root = Path.fromString("/configserver/v1/"); private static final Path lockRoot = root.append("locks"); - private final Curator curator; + private final Curator curator; private final ListFlag<String> inactiveJobsFlag; + private final boolean useLock; - public JobControlFlags(Curator curator, FlagSource flagSource) { + public JobControlFlags(Curator curator, FlagSource flagSource, boolean useLock) { this.curator = curator; this.inactiveJobsFlag = PermanentFlags.INACTIVE_MAINTENANCE_JOBS.bindTo(flagSource); + this.useLock = useLock; } @Override @@ -75,7 +77,9 @@ public abstract class ConfigServerMaintainer extends Maintainer { @Override public Mutex lockMaintenanceJob(String job) { - return curator.lock(lockRoot.append(job), Duration.ofSeconds(1)); + return (useLock) + ? curator.lock(lockRoot.append(job), Duration.ofSeconds(1)) + : () -> { }; } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java index df94d1ad6a4..277e6acd6e6 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java @@ -30,7 +30,7 @@ public class FileDistributionMaintainer extends ConfigServerMaintainer { Curator curator, Duration interval, FlagSource flagSource) { - super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval); + super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval, false); this.applicationRepository = applicationRepository; ConfigserverConfig configserverConfig = applicationRepository.configserverConfig(); this.maxUnusedFileReferenceAge = Duration.ofMinutes(configserverConfig.keepUnusedFileReferencesMinutes()); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ReindexingMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ReindexingMaintainer.java index a6802a65e3c..fb4d7ac1fc1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ReindexingMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ReindexingMaintainer.java @@ -11,7 +11,6 @@ import com.yahoo.vespa.config.server.application.ConfigConvergenceChecker; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.flags.FlagSource; -import com.yahoo.vespa.model.VespaModel; import com.yahoo.yolean.Exceptions; import java.time.Clock; @@ -21,7 +20,6 @@ import java.util.Collection; import java.util.Comparator; import java.util.Map; import java.util.Optional; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Supplier; @@ -46,7 +44,7 @@ public class ReindexingMaintainer extends ConfigServerMaintainer { public ReindexingMaintainer(ApplicationRepository applicationRepository, Curator curator, FlagSource flagSource, Duration interval, ConfigConvergenceChecker convergence, Clock clock) { - super(applicationRepository, curator, flagSource, clock.instant(), interval); + super(applicationRepository, curator, flagSource, clock.instant(), interval, true); this.convergence = convergence; this.clock = clock; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java index e0a5e080ff1..062f1ef816e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java @@ -19,7 +19,7 @@ public class SessionsMaintainer extends ConfigServerMaintainer { private final boolean hostedVespa; SessionsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval, FlagSource flagSource) { - super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval); + super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval, true); this.hostedVespa = applicationRepository.configserverConfig().hostedVespa(); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java index 049441c3a36..ec09e89568c 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java @@ -25,7 +25,7 @@ public class TenantsMaintainer extends ConfigServerMaintainer { TenantsMaintainer(ApplicationRepository applicationRepository, Curator curator, FlagSource flagSource, Duration interval, Clock clock) { - super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval); + super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval, true); this.ttlForUnusedTenant = defaultTtlForUnusedTenant; this.clock = clock; } |