diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-22 00:33:12 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-22 11:31:01 +0200 |
commit | 9e7180cb7a2ef747bb72560097fedbdb8f5f08f1 (patch) | |
tree | 08d0af8ee2f777b6a7baa235bff4ef54d3a87945 /documentapi/src/main/java/com/yahoo | |
parent | 6a61110fef80bebfdd7fe7725005a6560974b22d (diff) |
Change interface from Mirror.Entry[] to List<Mirror.Entry> as you already have a list.
Avoid having to do an array copy that is not necessary.
Diffstat (limited to 'documentapi/src/main/java/com/yahoo')
8 files changed, 29 insertions, 27 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java index 312fd6e5964..e81ac4ae05e 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java @@ -103,7 +103,7 @@ public class ExternPolicy implements DocumentProtocolRoutingPolicy { if (generation != upd) { generation = upd; recipients.clear(); - Mirror.Entry[] arr = mirror.lookup(pattern); + List<Mirror.Entry> arr = mirror.lookup(pattern); for (Mirror.Entry entry : arr) { recipients.add(Hop.parse(entry.getSpec() + session)); } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternalSlobrokPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternalSlobrokPolicy.java index 3ebe5b7281e..39242bb6cab 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternalSlobrokPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternalSlobrokPolicy.java @@ -11,6 +11,7 @@ import com.yahoo.jrt.slobrok.api.SlobrokList; import com.yahoo.messagebus.routing.RoutingContext; import com.yahoo.cloud.config.SlobroksConfig; +import java.util.List; import java.util.Map; /** @@ -19,16 +20,16 @@ import java.util.Map; */ public abstract class ExternalSlobrokPolicy extends AsyncInitializationPolicy implements ConfigSubscriber.SingleSubscriber<SlobroksConfig> { String error; - Supervisor orb = null; - Mirror mirror = null; - SlobrokList slobroks = null; - boolean firstTry = true; + private Supervisor orb = null; + private Mirror mirror = null; + private SlobrokList slobroks = null; + private boolean firstTry = true; private ConfigSubscriber subscriber; String[] configSources = null; - String slobrokConfigId = "admin/slobrok.0"; + private final static String slobrokConfigId = "admin/slobrok.0"; - public ExternalSlobrokPolicy(Map<String, String> param) { + ExternalSlobrokPolicy(Map<String, String> param) { super(); String conf = param.get("config"); @@ -72,16 +73,16 @@ public abstract class ExternalSlobrokPolicy extends AsyncInitializationPolicy im return mirror; } - public Mirror.Entry[] lookup(RoutingContext context, String pattern) { + public List<Mirror.Entry> lookup(RoutingContext context, String pattern) { IMirror mirror1 = (mirror != null ? mirror : context.getMirror()); - Mirror.Entry[] arr = mirror1.lookup(pattern); + List<Mirror.Entry> arr = mirror1.lookup(pattern); - if ((arr.length == 0) && firstTry) { + if ((arr.isEmpty()) && firstTry) { synchronized(this) { try { int count = 0; - while (arr.length == 0 && count < 100) { + while (arr.isEmpty() && count < 100) { Thread.sleep(50); arr = mirror1.lookup(pattern); count++; diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java index 167a480e1aa..a2875f14ab5 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java @@ -62,8 +62,8 @@ public class LoadBalancer { * @param choices the node choices, represented as Slobrok entries * @return the chosen node, or null only if the given choices were zero */ - public Node getRecipient(Mirror.Entry[] choices) { - if (choices.length == 0) return null; + public Node getRecipient(List<Mirror.Entry> choices) { + if (choices.isEmpty()) return null; double weightSum = 0.0; Node selectedNode = null; @@ -79,7 +79,7 @@ public class LoadBalancer { } if (selectedNode == null) { // Position>sum of all weights: Wrap around (but keep the remainder for some reason) position -= weightSum; - selectedNode = new Node(choices[0], getNodeMetrics(choices[0])); + selectedNode = new Node(choices.get(0), getNodeMetrics(choices.get(0))); } position += 1.0; selectedNode.metrics.sent.incrementAndGet(); diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java index 7c5345351a8..9cf82144e71 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java @@ -9,6 +9,7 @@ import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; import com.yahoo.messagebus.routing.RoutingNodeIterator; +import java.util.List; import java.util.Map; /** @@ -75,7 +76,7 @@ public class LoadBalancerPolicy extends ExternalSlobrokPolicy { @return Returns a hop representing the TCP address of the target, or null if none could be found. */ private LoadBalancer.Node getRecipient(RoutingContext context) { - Mirror.Entry [] lastLookup = lookup(context, pattern); + List<Mirror.Entry> lastLookup = lookup(context, pattern); return loadBalancer.getRecipient(lastLookup); } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java index eb56a85e378..d4ebd4ecd81 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java @@ -83,7 +83,7 @@ public class LocalServicePolicy implements DocumentProtocolRoutingPolicy { entry.generation = upd; entry.recipients.clear(); - Mirror.Entry[] arr = ctx.getMirror().lookup(ctx.getHopPrefix() + "*" + ctx.getHopSuffix()); + List<Mirror.Entry> arr = ctx.getMirror().lookup(ctx.getHopPrefix() + "*" + ctx.getHopSuffix()); String self = localAddress != null ? localAddress : toAddress(ctx.getMessageBus().getConnectionSpec()); for (Mirror.Entry item : arr) { if (self.equals(toAddress(item.getSpec()))) { diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java index 244d101b36f..3a1599ab71b 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java @@ -82,7 +82,7 @@ public class RoundRobinPolicy implements DocumentProtocolRoutingPolicy { entry.generation = upd; entry.recipients.clear(); for (int i = 0; i < ctx.getNumRecipients(); ++i) { - Mirror.Entry[] arr = ctx.getMirror().lookup(ctx.getRecipient(i).getHop(0).toString()); + List<Mirror.Entry> arr = ctx.getMirror().lookup(ctx.getRecipient(i).getHop(0).toString()); for (Mirror.Entry item : arr) { entry.recipients.add(Hop.parse(item.getName())); } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java index 341589643d2..048149e86ab 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java @@ -107,7 +107,7 @@ public class StoragePolicy extends ExternalSlobrokPolicy { this.policy = policy; } - private Mirror.Entry[] getEntries(String hostPattern, RoutingContext context) { + private List<Mirror.Entry> getEntries(String hostPattern, RoutingContext context) { return policy.lookup(context, hostPattern); } @@ -116,16 +116,16 @@ public class StoragePolicy extends ExternalSlobrokPolicy { public IMirror getMirror(RoutingContext context) { return context.getMirror(); } public String getTargetSpec(Integer distributor, RoutingContext context) { - Mirror.Entry[] arr = getEntries(patternGenerator.getDistributorHostPattern(distributor), context); - if (arr.length == 0) return null; + List<Mirror.Entry> arr = getEntries(patternGenerator.getDistributorHostPattern(distributor), context); + if (arr.isEmpty()) return null; if (distributor != null) { - if (arr.length == 1) { - return convertSlobrokNameToSessionName(arr[0].getSpec()); + if (arr.size() == 1) { + return convertSlobrokNameToSessionName(arr.get(0).getSpec()); } else { - log.log(LogLevel.WARNING, "Got " + arr.length + " matches for a distributor."); + log.log(LogLevel.WARNING, "Got " + arr.size() + " matches for a distributor."); } } else { - return convertSlobrokNameToSessionName(arr[randomizer.nextInt(arr.length)].getSpec()); + return convertSlobrokNameToSessionName(arr.get(randomizer.nextInt(arr.size())).getSpec()); } return null; } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java index 31802f2872f..3251c038fc7 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java @@ -109,10 +109,10 @@ public class SubsetServicePolicy implements DocumentProtocolRoutingPolicy { entry.generation = upd; entry.recipients.clear(); - Mirror.Entry[] arr = ctx.getMirror().lookup(ctx.getHopPrefix() + "*" + ctx.getHopSuffix()); + List<Mirror.Entry> arr = ctx.getMirror().lookup(ctx.getHopPrefix() + "*" + ctx.getHopSuffix()); int pos = ctx.getMessageBus().getConnectionSpec().hashCode(); - for (int i = 0; i < subsetSize && i < arr.length; ++i) { - entry.recipients.add(Hop.parse(arr[((pos + i) & Integer.MAX_VALUE) % arr.length].getName())); + for (int i = 0; i < subsetSize && i < arr.size(); ++i) { + entry.recipients.add(Hop.parse(arr.get(((pos + i) & Integer.MAX_VALUE) % arr.size()).getName())); } } return entry; |