diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-10-06 15:31:12 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-10-06 15:31:12 +0200 |
commit | da57ae5990f0021e31fe708e9cdd25914f1f1e45 (patch) | |
tree | 8ae54083760c3757c8e58308d948478afcf5b762 /node-repository/src | |
parent | 3aedbdfc275fd16081c78b1fee0b95ff8fd0990b (diff) |
Remove config lock from node-repository
Diffstat (limited to 'node-repository/src')
4 files changed, 19 insertions, 61 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java index 56e52d9f658..17f8d73c88f 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java @@ -25,10 +25,7 @@ public class Applications { // read and write all to make sure they are stored in the latest version of the serialized format for (ApplicationId id : ids()) { try (Mutex lock = db.lock(id)) { - // TODO(mpolden): Remove inner lock - try (Mutex innerLock = db.configLock(id)) { - get(id).ifPresent(application -> put(application, lock)); - } + get(id).ifPresent(application -> put(application, lock)); } } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java index 55d17f3e080..90cf3ba8f54 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java @@ -124,13 +124,10 @@ public class LoadBalancerExpirer extends NodeRepositoryMaintainer { private void withLoadBalancersIn(LoadBalancer.State state, Consumer<LoadBalancer> operation) { for (var id : db.readLoadBalancerIds()) { try (var lock = db.lock(id.application())) { - // TODO(mpolden): Remove inner lock - try (var innerLock = db.configLock(id.application())) { - var loadBalancer = db.readLoadBalancer(id); - if (loadBalancer.isEmpty()) continue; // Load balancer was removed during loop - if (loadBalancer.get().state() != state) continue; // Wrong state - operation.accept(loadBalancer.get()); - } + var loadBalancer = db.readLoadBalancer(id); + if (loadBalancer.isEmpty()) continue; // Load balancer was removed during loop + if (loadBalancer.get().state() != state) continue; // Wrong state + operation.accept(loadBalancer.get()); } } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java index 2c00b4bab68..91c683d139e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java @@ -61,7 +61,6 @@ public class CuratorDatabaseClient { private static final Path root = Path.fromString("/provision/v1"); private static final Path lockPath = root.append("locks"); - private static final Path configLockPath = Path.fromString("/config/v2/locks/"); private static final Path loadBalancersPath = root.append("loadBalancers"); private static final Path applicationsPath = root.append("applications"); private static final Path inactiveJobsPath = root.append("inactiveJobs"); @@ -328,15 +327,6 @@ public class CuratorDatabaseClient { return lockPath; } - /** Creates and returns the config lock path for this application */ - // TODO(mpolden): Remove - private Path configLockPath(ApplicationId application) { - // This must match the lock path used by com.yahoo.vespa.config.server.application.TenantApplications - Path lockPath = configLockPath.append(application.tenant().value()).append(application.serializedForm()); - db.create(lockPath); - return lockPath; - } - private String toDir(Node.State state) { switch (state) { case active: return "allocated"; // legacy name @@ -372,20 +362,6 @@ public class CuratorDatabaseClient { } } - // TODO(mpolden): Remove - private Lock configLock(ApplicationId application, Duration timeout) { - try { - return db.lock(configLockPath(application), timeout); - } catch (UncheckedTimeoutException e) { - throw new ApplicationLockException(e); - } - } - - // TODO(mpolden): Remove - public Lock configLock(ApplicationId application) { - return configLock(application, defaultLockTimeout); - } - // Applications ----------------------------------------------------------- public List<ApplicationId> readApplicationIds() { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java index 09a33093654..cc0b5e411ca 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java @@ -60,11 +60,8 @@ public class LoadBalancerProvisioner { // Read and write all load balancers to make sure they are stored in the latest version of the serialization format for (var id : db.readLoadBalancerIds()) { try (var lock = db.lock(id.application())) { - // TODO(mpolden): Remove inner lock - try (var innerLock = db.configLock(id.application())) { - var loadBalancer = db.readLoadBalancer(id); - loadBalancer.ifPresent(db::writeLoadBalancer); - } + var loadBalancer = db.readLoadBalancer(id); + loadBalancer.ifPresent(db::writeLoadBalancer); } } } @@ -83,12 +80,9 @@ public class LoadBalancerProvisioner { if (!canForwardTo(requestedNodes.type(), cluster)) return; // Nothing to provision for this node and cluster type if (application.instance().isTester()) return; // Do not provision for tester instances try (var lock = db.lock(application)) { - // TODO(mpolden): Remove inner lock - try (var innerLock = db.configLock(application)) { - ClusterSpec.Id clusterId = effectiveId(cluster); - List<Node> nodes = nodesOf(clusterId, application); - provision(application, clusterId, nodes, false, lock); - } + ClusterSpec.Id clusterId = effectiveId(cluster); + List<Node> nodes = nodesOf(clusterId, application); + provision(application, clusterId, nodes, false, lock); } } @@ -105,18 +99,15 @@ public class LoadBalancerProvisioner { public void activate(ApplicationId application, Set<ClusterSpec> clusters, @SuppressWarnings("unused") Mutex applicationLock, NestedTransaction transaction) { try (var lock = db.lock(application)) { - // TODO(mpolden): Remove inner lock - try (var innerLock = db.configLock(application)) { - for (var cluster : loadBalancedClustersOf(application).entrySet()) { - // Provision again to ensure that load balancer instance is re-configured with correct nodes - provision(application, cluster.getKey(), cluster.getValue(), true, lock); - } - // Deactivate any surplus load balancers, i.e. load balancers for clusters that have been removed - var surplusLoadBalancers = surplusLoadBalancersOf(application, clusters.stream() - .map(LoadBalancerProvisioner::effectiveId) - .collect(Collectors.toSet())); - deactivate(surplusLoadBalancers, transaction); + for (var cluster : loadBalancedClustersOf(application).entrySet()) { + // Provision again to ensure that load balancer instance is re-configured with correct nodes + provision(application, cluster.getKey(), cluster.getValue(), true, lock); } + // Deactivate any surplus load balancers, i.e. load balancers for clusters that have been removed + var surplusLoadBalancers = surplusLoadBalancersOf(application, clusters.stream() + .map(LoadBalancerProvisioner::effectiveId) + .collect(Collectors.toSet())); + deactivate(surplusLoadBalancers, transaction); } } @@ -126,10 +117,7 @@ public class LoadBalancerProvisioner { */ public void deactivate(ApplicationId application, NestedTransaction transaction) { try (var lock = nodeRepository.lock(application)) { - // TODO(mpolden): Remove inner lock - try (var innerLock = db.configLock(application)) { - deactivate(nodeRepository.loadBalancers(application).asList(), transaction); - } + deactivate(nodeRepository.loadBalancers(application).asList(), transaction); } } |