You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/10/31 05:06:52 UTC
[06/50] [abbrv] lucene-solr:jira/http2_benchmark: SOLR-12846: Added
support for "host" variable in autoscaling policy rules
SOLR-12846: Added support for "host" variable in autoscaling policy rules
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c31a95d2
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c31a95d2
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c31a95d2
Branch: refs/heads/jira/http2_benchmark
Commit: c31a95d26170c7ffbd7e3177288891d6a14f4ab1
Parents: 8c70811
Author: Noble Paul <no...@apache.org>
Authored: Tue Oct 23 00:03:59 2018 +1100
Committer: Noble Paul <no...@apache.org>
Committed: Tue Oct 23 00:03:59 2018 +1100
----------------------------------------------------------------------
solr/CHANGES.txt | 3 +
.../solr/cloud/autoscaling/TestPolicyCloud.java | 2 +
.../solrj/cloud/autoscaling/Variable.java | 6 +
.../solr/autoscaling/testHostAttribute.json | 119 +++++++++++++++++++
.../solrj/cloud/autoscaling/TestPolicy2.java | 22 +++-
5 files changed, 150 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c31a95d2/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 342d68c..f26e180 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -149,6 +149,9 @@ New Features
* SOLR-12780: Add support for Leaky ReLU and TanH activations in contrib/ltr NeuralNetworkModel class.
(Kamuela Lau, Christine Poerschke)
+* SOLR-12846: Added support for "host" variable in autoscaling policy rules (noble)
+
+
Other Changes
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c31a95d2/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
index bfd5878..4ff847d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java
@@ -389,9 +389,11 @@ public class TestPolicyCloud extends SolrCloudTestCase {
Map<String, Object> val = cloudManager.getNodeStateProvider().getNodeValues(rulesCollection.getReplicas().get(0).getNodeName(), Arrays.asList(
"freedisk",
"cores",
+ "host",
"heapUsage",
"sysLoadAvg"));
assertNotNull(val.get("freedisk"));
+ assertNotNull(val.get("host"));
assertNotNull(val.get("heapUsage"));
assertNotNull(val.get("sysLoadAvg"));
assertTrue(((Number) val.get("cores")).intValue() > 0);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c31a95d2/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Variable.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Variable.java b/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Variable.java
index 0dfe282..72e571f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Variable.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/autoscaling/Variable.java
@@ -205,6 +205,12 @@ public interface Variable {
min = 0)
NUMBER,
+ @Meta(name = "host",
+ type = String.class,
+ wildCards = Policy.EACH,
+ supportArrayVals = true)
+ HOST,
+
@Meta(name = "STRING",
type = String.class,
wildCards = Policy.EACH,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c31a95d2/solr/solrj/src/test-files/solrj/solr/autoscaling/testHostAttribute.json
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test-files/solrj/solr/autoscaling/testHostAttribute.json b/solr/solrj/src/test-files/solrj/solr/autoscaling/testHostAttribute.json
new file mode 100644
index 0000000..7afd7ad
--- /dev/null
+++ b/solr/solrj/src/test-files/solrj/solr/autoscaling/testHostAttribute.json
@@ -0,0 +1,119 @@
+{"diagnostics":{
+ "sortedNodes":[{
+ "node":"127.0.0.191:63191_solr",
+ "isLive":true,
+ "cores":3.0,
+ "host":"127.0.0.191",
+ "sysprop.zone":"east",
+ "freedisk":1727.1459312438965,
+ "heapUsage":24.97510064011647,
+ "sysLoadAvg":272.75390625,
+ "totaldisk":1037.938980102539,
+ "replicas":{"zonesTest":{"shard1":[{"core_node5":{
+ "core":"zonesTest_shard1_replica_n2",
+ "leader":"true",
+ "base_url":"https://127.0.0.191:63191/solr",
+ "node_name":"127.0.0.191:63191_solr",
+ "state":"active",
+ "type":"NRT",
+ "force_set_state":"false",
+ "INDEX.sizeInGB":6.426125764846802E-8,
+ "shard":"shard1",
+ "collection":"zonesTest"}},
+ {"core_node7":{
+ "core":"zonesTest_shard1_replica_n4",
+ "base_url":"https://127.0.0.191:63191/solr",
+ "node_name":"127.0.0.191:63191_solr",
+ "state":"active",
+ "type":"NRT",
+ "force_set_state":"false",
+ "INDEX.sizeInGB":6.426125764846802E-8,
+ "shard":"shard1",
+ "collection":"zonesTest"}},
+ {"core_node12":{
+ "core":"zonesTest_shard1_replica_n10",
+ "base_url":"https://127.0.0.191:63191/solr",
+ "node_name":"127.0.0.191:63191_solr",
+ "state":"active",
+ "type":"NRT",
+ "force_set_state":"false",
+ "INDEX.sizeInGB":6.426125764846802E-8,
+ "shard":"shard1",
+ "collection":"zonesTest"}}]}}},
+ {
+ "node":"127.0.0.191:63192_solr",
+ "isLive":true,
+ "cores":3.0,
+ "host":"127.0.0.191",
+ "sysprop.zone":"east",
+ "freedisk":1727.1459312438965,
+ "heapUsage":24.98878807983566,
+ "sysLoadAvg":272.75390625,
+ "totaldisk":1037.938980102539,
+ "replicas":{"zonesTest":{"shard2":[{"core_node3":{
+ "core":"zonesTest_shard1_replica_n1",
+ "base_url":"https://127.0.0.191:63192/solr",
+ "node_name":"127.0.0.191:63192_solr",
+ "state":"active",
+ "type":"NRT",
+ "force_set_state":"false",
+ "INDEX.sizeInGB":6.426125764846802E-8,
+ "shard":"shard2",
+ "collection":"zonesTest"}},
+ {"core_node9":{
+ "core":"zonesTest_shard1_replica_n6",
+ "base_url":"https://127.0.0.191:63192/solr",
+ "node_name":"127.0.0.191:63192_solr",
+ "state":"active",
+ "type":"NRT",
+ "force_set_state":"false",
+ "INDEX.sizeInGB":6.426125764846802E-8,
+ "shard":"shard2",
+ "collection":"zonesTest"}},
+ {"core_node11":{
+ "core":"zonesTest_shard1_replica_n8",
+ "base_url":"https://127.0.0.191:63192/solr",
+ "node_name":"127.0.0.191:63192_solr",
+ "state":"active",
+ "type":"NRT",
+ "force_set_state":"false",
+ "INDEX.sizeInGB":6.426125764846802E-8,
+ "shard":"shard2",
+ "collection":"zonesTest"}}]}}},
+ {
+ "node":"127.0.0.219:63219_solr",
+ "isLive":true,
+ "cores":0.0,
+ "host":"127.0.0.219",
+ "sysprop.zone":"west",
+ "freedisk":1768.6174201965332,
+ "heapUsage":24.98878807983566,
+ "sysLoadAvg":272.75390625,
+ "totaldisk":1037.938980102539,
+ "replicas":{}},
+ {
+ "node":"127.0.0.219:63229_solr",
+ "isLive":true,
+ "cores":0.0,
+ "host":"127.0.0.219",
+ "sysprop.zone":"west",
+ "freedisk":1768.6174201965332,
+ "heapUsage":24.98878807983566,
+ "sysLoadAvg":272.75390625,
+ "totaldisk":1037.938980102539,
+ "replicas":{}}],
+ "liveNodes":["127.0.0.191:63191_solr",
+ "127.0.0.191:63192_solr",
+ "127.0.0.219:63219_solr",
+ "127.0.0.219:63229_solr"],
+ "config":{
+ "cluster-preferences":[{
+ "minimize":"cores",
+ "precision":1},
+ {"maximize":"freedisk",
+ "precision":100}],
+ "cluster-policy":[{
+ "replica":"<3",
+ "shard":"#EACH",
+ "host":["127.0.0.191",
+ "127.0.0.219:63219"]}]}}}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c31a95d2/solr/solrj/src/test/org/apache/solr/client/solrj/cloud/autoscaling/TestPolicy2.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/cloud/autoscaling/TestPolicy2.java b/solr/solrj/src/test/org/apache/solr/client/solrj/cloud/autoscaling/TestPolicy2.java
index c2ce4fa..cbcf3cd 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/cloud/autoscaling/TestPolicy2.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/cloud/autoscaling/TestPolicy2.java
@@ -291,7 +291,7 @@ public class TestPolicy2 extends SolrTestCaseJ4 {
return new DelegatingClusterStateProvider(null) {
@Override
- public ClusterState getClusterState() throws IOException {
+ public ClusterState getClusterState() {
return clusterState;
}
@@ -309,7 +309,25 @@ public class TestPolicy2 extends SolrTestCaseJ4 {
};
}
- public void testSysPropSuggestions() throws IOException {
+ public void testHostAttribute() {
+ Map<String, Object> m = (Map<String, Object>) loadFromResource("testHostAttribute.json");
+ Map<String, Object> conf = (Map<String, Object>) Utils.getObjectByPath(m, false, "diagnostics/config");
+ Policy policy = new Policy(conf);
+ SolrCloudManager cloudManagerFromDiagnostics = createCloudManagerFromDiagnostics(m);
+ Policy.Session session = policy.createSession(cloudManagerFromDiagnostics);
+ List<Violation> violations = session.getViolations();
+ for (Violation violation : violations) {
+ assertEquals(1.0d, violation.replicaCountDelta.doubleValue(), 0.0001);
+ }
+ assertEquals(2, violations.size());
+ List<Suggester.SuggestionInfo> suggestions = PolicyHelper.getSuggestions(new AutoScalingConfig(conf), cloudManagerFromDiagnostics);
+ assertEquals(2, suggestions.size());
+ for (Suggester.SuggestionInfo suggestion : suggestions) {
+ assertTrue(ImmutableSet.of("127.0.0.219:63219_solr", "127.0.0.219:63229_solr").contains(
+ suggestion._get("operation/command/move-replica/targetNode", null)));
+ }
+ }
+ public void testSysPropSuggestions() {
Map<String, Object> m = (Map<String, Object>) loadFromResource("testSysPropSuggestions.json");