diff options
author | Jon Bratseth <bratseth@oath.com> | 2019-01-13 17:52:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-13 17:52:25 +0100 |
commit | 106b565e99d46923581e31a1fb0dfcec4c1a5da5 (patch) | |
tree | 6bfe2ca36265bcd642106e77e37e2c0335b565da | |
parent | 028fd60d61854d074d2d8e5a4fb8b416abc7a62c (diff) | |
parent | 44c89edf64fcae684ab39c42b59fe8b22183f173 (diff) |
Merge pull request #8079 from vespa-engine/jvenstad/remove-feature-flag-for-cache-invalidation-strategy
Revert "Add feature flag for cache invalidation method, default old"
6 files changed, 17 insertions, 54 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java index 8b66b7f3fea..8710b47b914 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java @@ -81,6 +81,7 @@ public class NodeRepository extends AbstractComponent { private final NameResolver nameResolver; private final DockerImage dockerImage; private final OsVersions osVersions; + private final Flags flags; /** * Creates a node repository from a zookeeper provider. @@ -104,6 +105,7 @@ public class NodeRepository extends AbstractComponent { this.nameResolver = nameResolver; this.dockerImage = dockerImage; this.osVersions = new OsVersions(this.db); + this.flags = new Flags(this.db); // read and write all nodes to make sure they are stored in the latest version of the serialized format for (Node.State state : Node.State.values()) @@ -124,7 +126,7 @@ public class NodeRepository extends AbstractComponent { /** Returns feature flags of this node repository */ public Flags flags() { - return db.flags(); + return flags; } // ---------------- Query API ---------------------------------------------------------------- diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/flag/FlagId.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/flag/FlagId.java index f0714111cea..1b798c14588 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/flag/FlagId.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/flag/FlagId.java @@ -11,10 +11,7 @@ import java.util.Arrays; public enum FlagId { /** Indicates whether a exclusive load balancer should be provisioned */ - exclusiveLoadBalancer("exclusive-load-balancer"), - - /** Temporary. Indicates whether to use the new cache generation counting, or the old one (with a known bug) */ - newCacheCounting("new-cache-counting"); + exclusiveLoadBalancer("exclusive-load-balancer"); private final String serializedValue; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java index 8f4788a9206..2715b1131b3 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java @@ -93,16 +93,6 @@ public class CuratorDatabase { return curatorTransaction; } - // TODO jvenstad: remove. - /** Kept for now to be able to revert to old caching behaviour. */ - CuratorTransaction newEagerCuratorTransactionIn(NestedTransaction transaction) { - // Add a counting transaction first, to make sure we always invalidate the current state on any transaction commit - transaction.add(new EagerCountingCuratorTransaction(changeGenerationCounter), CuratorTransaction.class); - CuratorTransaction curatorTransaction = new CuratorTransaction(curator); - transaction.add(curatorTransaction); - return curatorTransaction; - } - /** Creates a path in curator and all its parents as necessary. If the path already exists this does nothing. */ void create(Path path) { curator.create(path); 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 8e91c0d12ad..da4d2a0afb2 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 @@ -20,7 +20,6 @@ import com.yahoo.vespa.curator.transaction.CuratorTransaction; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.flag.Flag; import com.yahoo.vespa.hosted.provision.flag.FlagId; -import com.yahoo.vespa.hosted.provision.flag.Flags; import com.yahoo.vespa.hosted.provision.lb.LoadBalancer; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerId; import com.yahoo.vespa.hosted.provision.node.Agent; @@ -69,17 +68,19 @@ public class CuratorDatabaseClient { private final CuratorDatabase curatorDatabase; private final Clock clock; private final Zone zone; - private final Flags flags; public CuratorDatabaseClient(NodeFlavors flavors, Curator curator, Clock clock, Zone zone, boolean useCache) { this.nodeSerializer = new NodeSerializer(flavors); this.zone = zone; - this.flags = new Flags(this); this.curatorDatabase = new CuratorDatabase(curator, root, useCache); this.clock = clock; initZK(); } + public List<HostName> cluster() { + return curatorDatabase.cluster(); + } + private void initZK() { curatorDatabase.create(root); for (Node.State state : Node.State.values()) @@ -91,20 +92,12 @@ public class CuratorDatabaseClient { curatorDatabase.create(flagsRoot); } - public List<HostName> cluster() { - return curatorDatabase.cluster(); - } - - public Flags flags() { - return flags; - } - /** * Adds a set of nodes. Rollbacks/fails transaction if any node is not in the expected state. */ public List<Node> addNodesInState(List<Node> nodes, Node.State expectedState) { NestedTransaction transaction = new NestedTransaction(); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); for (Node node : nodes) { if (node.state() != expectedState) throw new IllegalArgumentException(node + " is not in the " + node.state() + " state"); @@ -139,7 +132,7 @@ public class CuratorDatabaseClient { for (Node node : nodes) { Path path = toPath(node.state(), node.hostname()); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); curatorTransaction.add(CuratorOperations.delete(path.getAbsolute())); } @@ -209,7 +202,7 @@ public class CuratorDatabaseClient { List<Node> writtenNodes = new ArrayList<>(nodes.size()); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); for (Node node : nodes) { Node newNode = new Node(node.id(), node.ipAddresses(), node.ipAddressPool().asSet(), node.hostname(), node.parentHostname(), node.flavor(), @@ -377,7 +370,7 @@ public class CuratorDatabaseClient { public void writeInactiveJobs(Set<String> inactiveJobs) { NestedTransaction transaction = new NestedTransaction(); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); curatorTransaction.add(CuratorOperations.setData(inactiveJobsPath().getAbsolute(), stringSetSerializer.toJson(inactiveJobs))); transaction.commit(); @@ -397,7 +390,7 @@ public class CuratorDatabaseClient { public void writeInfrastructureVersions(Map<NodeType, Version> infrastructureVersions) { NestedTransaction transaction = new NestedTransaction(); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); curatorTransaction.add(CuratorOperations.setData(infrastructureVersionsPath().getAbsolute(), NodeTypeVersionsSerializer.toJson(infrastructureVersions))); transaction.commit(); @@ -417,7 +410,7 @@ public class CuratorDatabaseClient { public void writeOsVersions(Map<NodeType, Version> versions) { NestedTransaction transaction = new NestedTransaction(); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); curatorTransaction.add(CuratorOperations.setData(osVersionsPath().getAbsolute(), NodeTypeVersionsSerializer.toJson(versions))); transaction.commit(); @@ -458,7 +451,7 @@ public class CuratorDatabaseClient { } public void writeLoadBalancers(Collection<LoadBalancer> loadBalancers, NestedTransaction transaction) { - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); loadBalancers.forEach(loadBalancer -> { curatorTransaction.add(createOrSet(loadBalancerPath(loadBalancer.id()), LoadBalancerSerializer.toJson(loadBalancer))); @@ -467,7 +460,7 @@ public class CuratorDatabaseClient { public void removeLoadBalancer(LoadBalancerId loadBalancer) { NestedTransaction transaction = new NestedTransaction(); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); curatorTransaction.add(CuratorOperations.delete(loadBalancerPath(loadBalancer).getAbsolute())); transaction.commit(); } @@ -483,7 +476,7 @@ public class CuratorDatabaseClient { public void writeFlag(Flag flag) { Path path = flagPath(flag.id()); NestedTransaction transaction = new NestedTransaction(); - CuratorTransaction curatorTransaction = newCuratorTransactionIn(transaction); + CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction); curatorTransaction.add(createOrSet(path, FlagSerializer.toJson(flag))); transaction.commit(); } @@ -507,10 +500,4 @@ public class CuratorDatabaseClient { return CuratorOperations.create(path.getAbsolute(), data); } - private CuratorTransaction newCuratorTransactionIn(NestedTransaction transaction) { - return flags.get(FlagId.newCacheCounting).isEnabled() - ? curatorDatabase.newCuratorTransactionIn(transaction) - : curatorDatabase.newEagerCuratorTransactionIn(transaction); - } - } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags1.json index 33bf1e1cf42..a606777e9fd 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags1.json @@ -5,13 +5,6 @@ "enabled": false, "enabledHostnames": [], "enabledApplications": ["zoneapp:zoneapp:zoneapp"] - }, - { - "id": "new-cache-counting", - "enabled": false, - "enabledHostnames": [], - "enabledApplications": [] } - ] } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags2.json index 8d6859f550a..4baf75f2169 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/flags2.json @@ -10,12 +10,6 @@ "zoneapp:zoneapp:zoneapp", "foo:bar:default" ] - }, - { - "id": "new-cache-counting", - "enabled": false, - "enabledHostnames": [], - "enabledApplications": [] } ] } |