Updated Branches: refs/heads/master b6fa20233 -> 07769e1e6
Removed clone() method from LoadBalanceAlgorithm interface as suggested by Azeez and optimized log entries Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/07769e1e Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/07769e1e Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/07769e1e Branch: refs/heads/master Commit: 07769e1e6735aaf1acd09e48dba74273b3885971 Parents: b6fa202 Author: Imesh Gunaratne <[email protected]> Authored: Tue Nov 19 23:12:58 2013 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Tue Nov 19 23:12:58 2013 +0530 ---------------------------------------------------------------------- .../balancer/algorithm/LoadBalanceAlgorithm.java | 10 ++-------- .../algorithm/LoadBalanceAlgorithmFactory.java | 2 +- .../load/balancer/algorithm/RoundRobin.java | 18 ++++++++---------- 3 files changed, 11 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/07769e1e/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithm.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithm.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithm.java index 55412cf..ce268ac 100755 --- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithm.java +++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithm.java @@ -24,7 +24,8 @@ import org.apache.stratos.messaging.domain.topology.Member; import java.util.List; /** - * Defines the specification for implementing load balancing algorithms. + * Load balance algorithm interface. + * Implement this interface to introduce new load balance algorithms. */ public interface LoadBalanceAlgorithm { /** @@ -55,11 +56,4 @@ public interface LoadBalanceAlgorithm { * @param algorithmContext */ public void reset(AlgorithmContext algorithmContext); - - /** - * Clone algorithm object. - * - * @return - */ - public LoadBalanceAlgorithm clone(); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/07769e1e/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithmFactory.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithmFactory.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithmFactory.java index 699741e..1e64668 100644 --- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithmFactory.java +++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/LoadBalanceAlgorithmFactory.java @@ -25,7 +25,7 @@ import org.apache.commons.logging.LogFactory; import java.lang.reflect.InvocationTargetException; /** - * Load balance algorithm factory to create the algorithm + * Load balance algorithm factory to create algorithm objects. */ public class LoadBalanceAlgorithmFactory { private static final Log log = LogFactory.getLog(LoadBalanceAlgorithmFactory.class); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/07769e1e/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/RoundRobin.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/RoundRobin.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/RoundRobin.java index e3c2898..a1ce966 100644 --- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/RoundRobin.java +++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/algorithm/RoundRobin.java @@ -54,8 +54,12 @@ public class RoundRobin implements LoadBalanceAlgorithm { if (currentMemberIndex >= members.size()) { currentMemberIndex = 0; } + if (log.isDebugEnabled()) { + log.debug(String.format("Searching for next member: [service] %s [cluster]: %s [member-count]: %d [current-index] %d", algorithmContext.getServiceName(), algorithmContext.getClusterId(), members.size(), currentMemberIndex)); + } int index = members.size(); - do { current = members.get(currentMemberIndex); + do { + current = members.get(currentMemberIndex); if (currentMemberIndex == members.size() - 1) { currentMemberIndex = 0; } else { @@ -64,11 +68,6 @@ public class RoundRobin implements LoadBalanceAlgorithm { index--; } while ((!current.isActive()) && index > 0); algorithmContext.setCurrentMemberIndex(currentMemberIndex); - if (log.isDebugEnabled()) { - log.debug(String.format("Service name: %s cluster id: %s members: %d", algorithmContext.getServiceName(), algorithmContext.getClusterId(), members.size())); - log.debug(String.format("Current member: %s", current.getMemberId())); - } - } finally { lock.unlock(); } @@ -82,15 +81,14 @@ public class RoundRobin implements LoadBalanceAlgorithm { @Override public void reset(AlgorithmContext algorithmContext) { - if (log.isDebugEnabled()) { - log.debug("Resetting the Round Robin load balancing algorithm ..."); - } synchronized (algorithmContext) { algorithmContext.setCurrentMemberIndex(0); + if (log.isDebugEnabled()) { + log.debug("Round robin load balance algorithm was reset"); + } } } - @Override public LoadBalanceAlgorithm clone() { return new RoundRobin(); }
