diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-11 17:56:07 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-11 19:52:42 +0100 |
commit | e948875cb48323f6b506556febd5d98f8f22ae3f (patch) | |
tree | d3852478b3ea6d415f0578ff9cda5fb72ad8af92 /clustercontroller-core | |
parent | be5226a9af60c59211b24847ab82d664ac0e4f1f (diff) |
GC unused DiskState
Diffstat (limited to 'clustercontroller-core')
9 files changed, 7 insertions, 168 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java index 169684aa742..6c80973c4af 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java @@ -2,7 +2,12 @@ package com.yahoo.vespa.clustercontroller.core.restapiv2; import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTaskScheduler; -import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.*; +import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.ClusterListRequest; +import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.ClusterStateRequest; +import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.NodeStateRequest; +import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.ServiceStateRequest; +import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.SetNodeStateRequest; +import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.SetNodeStatesForClusterRequest; import com.yahoo.vespa.clustercontroller.utils.staterestapi.StateRestAPI; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.InternalFailure; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.OtherMasterException; @@ -12,7 +17,6 @@ import com.yahoo.vespa.clustercontroller.utils.staterestapi.requests.UnitStateRe import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.SetResponse; import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse; -import java.util.EnumSet; import java.util.Map; import java.util.Objects; import java.util.logging.Logger; @@ -86,10 +90,6 @@ public class ClusterControllerStateRestAPI implements StateRestAPI { public Request<? extends UnitResponse> visitNode(Id.Node id) { return new NodeStateRequest(id); } - @Override - public Request<? extends UnitResponse> visitPartition(Id.Partition id) { - return new PartitionStateRequest(id, EnumSet.of(VerboseReport.STATISTICS)); - } }); if (req instanceof ClusterListRequest) { log.fine("Got cluster list request"); diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java index 17949b82365..82512262b4a 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core.restapiv2; -import com.yahoo.vdslib.state.DiskState; import com.yahoo.vdslib.state.NodeState; import com.yahoo.vdslib.state.State; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.InternalFailure; @@ -32,10 +31,6 @@ public class Response { this.id = parseId(ns.getState()); this.reason = ns.getDescription(); } - public UnitStateImpl(DiskState ds) throws StateRestApiException { - this.id = parseId(ds.getState()); - this.reason = ds.getDescription(); - } public String parseId(State id) throws StateRestApiException { switch (id) { diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java index 4dc73f4d0dd..04fd154ff6b 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java @@ -6,7 +6,6 @@ import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTaskSchedul import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.MissingUnitException; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.OperationNotSupportedForUnitException; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.StateRestApiException; -import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse; import java.util.HashMap; import java.util.Map; @@ -19,7 +18,6 @@ public class UnitPathResolver<T> { Request<? extends T> visitCluster(Id.Cluster id) throws StateRestApiException; Request<? extends T> visitService(Id.Service id) throws StateRestApiException; Request<? extends T> visitNode(Id.Node id) throws StateRestApiException; - Request<? extends T> visitPartition(Id.Partition id) throws StateRestApiException; } @@ -40,7 +38,6 @@ public class UnitPathResolver<T> { public Request<? extends T> visitCluster(Id.Cluster id) throws StateRestApiException { return fail(); } public Request<? extends T> visitService(Id.Service id) throws StateRestApiException { return fail(); } public Request<? extends T> visitNode(Id.Node id) throws StateRestApiException { return fail(); } - public Request<? extends T> visitPartition(Id.Partition id) throws StateRestApiException { return fail(); } } @@ -87,16 +84,7 @@ public class UnitPathResolver<T> { if (path.length == 3) { return visitor.visitNode(node); } - Id.Partition partition; - try{ - partition = new Id.Partition(node, Integer.valueOf(path[3])); - } catch (NumberFormatException e) { - throw new MissingUnitException(path, 3); - } - if (path.length == 4) { - return visitor.visitPartition(partition); - } - throw new MissingUnitException(path, 4); + throw new MissingUnitException(path, 3); } } diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java deleted file mode 100644 index bb42af45ef3..00000000000 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.clustercontroller.core.restapiv2.requests; - -import com.yahoo.vdslib.state.DiskState; -import com.yahoo.vdslib.state.NodeState; -import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTask; -import com.yahoo.vespa.clustercontroller.core.hostinfo.Metrics; -import com.yahoo.vespa.clustercontroller.core.restapiv2.Id; -import com.yahoo.vespa.clustercontroller.core.restapiv2.Request; -import com.yahoo.vespa.clustercontroller.core.restapiv2.Response; -import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.StateRestApiException; - -import java.util.Set; -import java.util.logging.Logger; - -public class PartitionStateRequest extends Request<Response.PartitionResponse> { - private static final Logger log = Logger.getLogger(PartitionStateRequest.class.getName()); - private final Id.Partition id; - private final Set<VerboseReport> verboseReports; - - public PartitionStateRequest(Id.Partition id, Set<VerboseReport> verboseReports) { - super(MasterState.MUST_BE_MASTER); - this.id = id; - this.verboseReports = verboseReports; - } - - @Override - public Response.PartitionResponse calculateResult(RemoteClusterControllerTask.Context context) - throws StateRestApiException { - Response.PartitionResponse result = new Response.PartitionResponse(); - if (verboseReports.contains(VerboseReport.STATISTICS)) { - fillInMetrics(context.cluster.getNodeInfo(id.getNode()).getHostInfo().getMetrics(), result); - } - NodeState nodeState = context.currentConsolidatedState.getNodeState(id.getNode()); - DiskState diskState = new DiskState(); - result.addState("generated", new Response.UnitStateImpl(diskState)); - - return result; - } - - private static void fillInMetrics(Metrics metrics, Response.PartitionResponse result) { - for (Metrics.Metric metric: metrics.getMetrics()) { - fillInMetricValue(metric.getName(), metric.getValue(), result); - } - } - - private static void fillInMetricValue( - String name, Metrics.Value value, Response.PartitionResponse result) { - if (name.equals("vds.datastored.alldisks.docs")) { - if (value.getLast() == null) { - log.warning("Proper doc count value did not exist in value set."); - return; - } - result.addMetric("unique-document-count", value.getLast()); - } else if (name.equals("vds.datastored.alldisks.bytes")) { - if (value.getLast() == null) { - log.warning("Proper doc size value did not exist in value set."); - return; - } - result.addMetric("unique-document-total-size", value.getLast()); - } else if (name.equals("vds.datastored.alldisks.buckets")) { - if (value.getLast() == null) { - log.warning("Proper bucket count value did not exist in value set."); - return; - } - result.addMetric("bucket-count", value.getLast()); - } - } -} diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java index bf191768892..0798e6174f9 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.clustercontroller.core; import com.yahoo.vdslib.distribution.ConfiguredNode; -import com.yahoo.vdslib.state.DiskState; import com.yahoo.vdslib.state.Node; import com.yahoo.vdslib.state.NodeState; import com.yahoo.vdslib.state.NodeType; diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java index bd77f42ff8a..d33d235bc66 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.clustercontroller.core; import com.yahoo.vdslib.distribution.ConfiguredNode; -import com.yahoo.vdslib.state.DiskState; import com.yahoo.vdslib.state.Node; import com.yahoo.vdslib.state.NodeState; import com.yahoo.vdslib.state.NodeType; diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java index 4ec5893c1e7..b0355844341 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java @@ -54,12 +54,6 @@ public class NotMasterTest extends StateRestApiTest { assertTrue(e.getMessage(), e.getMessage().contains("No known master cluster controller")); } try{ - restAPI.getState(new StateRequest("music/storage/1/0", 0)); - fail(); - } catch (UnknownMasterException e) { - assertTrue(e.getMessage(), e.getMessage().contains("No known master cluster controller")); - } - try{ restAPI.setUnitState(new SetNodeStateTest.SetUnitStateRequestImpl("music/storage/1") .setNewState("user", "down", "test")); fail(); @@ -118,14 +112,6 @@ public class NotMasterTest extends StateRestApiTest { assertEquals(e.getPort(), getDefaults().vespaWebServicePort()); } try{ - restAPI.getState(new StateRequest("music/storage/1/0", 0)); - fail(); - } catch (OtherMasterException e) { - assertTrue(e.getMessage(), e.getMessage().contains("Cluster controller not master. Use master at otherhost:" + getDefaults().vespaWebServicePort() + ".")); - assertEquals("otherhost", e.getHost()); - assertEquals(e.getPort(), getDefaults().vespaWebServicePort()); - } - try{ restAPI.setUnitState(new SetNodeStateTest.SetUnitStateRequestImpl("music/storage/1") .setNewState("user", "down", "test")); fail(); diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java deleted file mode 100644 index 106803ec3f1..00000000000 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.clustercontroller.core.restapiv2; - -import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse; -import org.codehaus.jettison.json.JSONObject; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class PartitionTest extends StateRestApiTest { - - @Test - public void testPartition() throws Exception { - setUp(true); - UnitResponse response = restAPI.getState(new StateRequest("music/storage/1/0", 0)); - String expected = - "{\n" + - " \"state\": {\"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }},\n" + - " \"metrics\": {\n" + - " \"bucket-count\": 1,\n" + - " \"unique-document-count\": 2,\n" + - " \"unique-document-total-size\": 3\n" + - " }\n" + - "}"; - assertEquals(expected, jsonWriter.createJson(response).toString(2)); - } - - @Test - public void testRecursiveCluster() throws Exception { - setUp(true); - UnitResponse response = restAPI.getState(new StateRequest("music/storage/1/0", 1)); - String expected = - "{\n" + - " \"state\": {\"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }},\n" + - " \"metrics\": {\n" + - " \"bucket-count\": 1,\n" + - " \"unique-document-count\": 2,\n" + - " \"unique-document-total-size\": 3\n" + - " }\n" + - "}"; - assertEquals(expected, jsonWriter.createJson(response).toString(2)); - } -} diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java index 03fdb15971f..0e9a4808e9b 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java @@ -366,16 +366,6 @@ public class SetNodeStateTest extends StateRestApiTest { } catch (OperationNotSupportedForUnitException e) { assertTrue(e.getMessage(), e.getMessage().contains(wrongUnitMessage)); } - - // ... setting at node-level is allowed - - try{ - restAPI.setUnitState(new SetUnitStateRequestImpl( - "music/storage/1/0").setNewState("user", "down", "testing")); - fail(); - } catch (OperationNotSupportedForUnitException e) { - assertTrue(e.getMessage(), e.getMessage().contains(wrongUnitMessage)); - } } @Test |