summaryrefslogtreecommitdiffstats
path: root/vdslib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-26 15:09:24 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-26 15:09:24 +0200
commitafba2a1b55183e7fc89da97a2f8535365021e723 (patch)
tree9095d4fbef86d5b8f332aacfd89682838449bc61 /vdslib
parent04bed07efb4b196047681f91f79bd531966cd37c (diff)
Get rid of very complicated and inherently thread unsafe code as external slobrok/configserver support is long gone.
Diffstat (limited to 'vdslib')
-rw-r--r--vdslib/src/main/java/com/yahoo/vdslib/distribution/Distribution.java42
1 files changed, 24 insertions, 18 deletions
diff --git a/vdslib/src/main/java/com/yahoo/vdslib/distribution/Distribution.java b/vdslib/src/main/java/com/yahoo/vdslib/distribution/Distribution.java
index 7d6d75e0ee2..0063011e41c 100644
--- a/vdslib/src/main/java/com/yahoo/vdslib/distribution/Distribution.java
+++ b/vdslib/src/main/java/com/yahoo/vdslib/distribution/Distribution.java
@@ -3,13 +3,27 @@ package com.yahoo.vdslib.distribution;
import com.yahoo.collections.BobHash;
import com.yahoo.config.subscription.ConfigSubscriber;
+import com.yahoo.vdslib.state.ClusterState;
+import com.yahoo.vdslib.state.DiskState;
+import com.yahoo.vdslib.state.Node;
+import com.yahoo.vdslib.state.NodeState;
+import com.yahoo.vdslib.state.NodeType;
+import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.config.content.StorDistributionConfig;
-import com.yahoo.config.subscription.ConfigSourceSet;
-import com.yahoo.vdslib.state.*;
import com.yahoo.document.BucketId;
-import java.util.*;
import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.TreeSet;
public class Distribution {
@@ -27,7 +41,7 @@ public class Distribution {
return redundancy;
}
- private ConfigSubscriber.SingleSubscriber<StorDistributionConfig> configSubscriber = new ConfigSubscriber.SingleSubscriber<StorDistributionConfig>() {
+ private ConfigSubscriber.SingleSubscriber<StorDistributionConfig> configSubscriber = new ConfigSubscriber.SingleSubscriber<>() {
private int[] getGroupPath(String path) {
if (path.equals("invalid")) { return new int[0]; }
StringTokenizer st = new StringTokenizer(path, ".");
@@ -65,7 +79,6 @@ public class Distribution {
if (path.length == 0) {
root = group;
} else {
- assert(root != null);
Group parent = root;
for (int j=0; j<path.length - 1; ++j) {
parent = parent.getSubgroups().get(path[j]);
@@ -90,19 +103,12 @@ public class Distribution {
};
public Distribution(String configId) {
- this(configId, null);
- }
- public Distribution(String configId, ConfigSourceSet configSources) {
int mask = 0;
for (int i=0; i<=64; ++i) {
distributionBitMasks[i] = mask;
mask = (mask << 1) | 1;
}
- if (configSources==null) {
- configSub = new ConfigSubscriber();
- } else {
- configSub = new ConfigSubscriber(configSources);
- }
+ configSub = new ConfigSubscriber();
configSub.subscribe(configSubscriber, StorDistributionConfig.class, configId);
}
@@ -213,7 +219,7 @@ public class Distribution {
return group.compareTo(o.group);
}
}
- public void getIdealGroups(BucketId bucketId, ClusterState clusterState, Group parent,
+ private void getIdealGroups(BucketId bucketId, ClusterState clusterState, Group parent,
int redundancy, List<ResultGroup> results) {
if (parent.isLeafGroup()) {
results.add(new ResultGroup(parent, redundancy));
@@ -311,7 +317,7 @@ public class Distribution {
return idealDisk;
}
- public List<Integer> getIdealStorageNodes(ClusterState clusterState, BucketId bucket,
+ List<Integer> getIdealStorageNodes(ClusterState clusterState, BucketId bucket,
String upStates) throws TooFewBucketBitsInUseException {
List<Integer> resultNodes = new ArrayList<>();
@@ -399,12 +405,12 @@ public class Distribution {
}
public static class TooFewBucketBitsInUseException extends Exception {
- public TooFewBucketBitsInUseException(String message) {
+ TooFewBucketBitsInUseException(String message) {
super(message);
}
}
public static class NoDistributorsAvailableException extends Exception {
- public NoDistributorsAvailableException(String message) {
+ NoDistributorsAvailableException(String message) {
super(message);
}
}
@@ -504,7 +510,7 @@ public class Distribution {
public static String getSimpleGroupConfig(int redundancy, int nodeCount) {
return getSimpleGroupConfig(redundancy, nodeCount, StorDistributionConfig.Disk_distribution.Enum.MODULO_BID);
}
- public static String getSimpleGroupConfig(int redundancy, int nodeCount, StorDistributionConfig.Disk_distribution.Enum diskDistribution) {
+ private static String getSimpleGroupConfig(int redundancy, int nodeCount, StorDistributionConfig.Disk_distribution.Enum diskDistribution) {
StringBuilder sb = new StringBuilder();
sb.append("raw:redundancy ").append(redundancy).append("\n").append("group[4]\n");