summaryrefslogtreecommitdiffstats
path: root/node-repository/src
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-10-06 15:31:12 +0200
committerMartin Polden <mpolden@mpolden.no>2020-10-06 15:31:12 +0200
commitda57ae5990f0021e31fe708e9cdd25914f1f1e45 (patch)
tree8ae54083760c3757c8e58308d948478afcf5b762 /node-repository/src
parent3aedbdfc275fd16081c78b1fee0b95ff8fd0990b (diff)
Remove config lock from node-repository
Diffstat (limited to 'node-repository/src')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java11
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java24
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java40
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);
}
}