You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2013/11/19 18:43:07 UTC
git commit: Removed clone() method from LoadBalanceAlgorithm
interface as suggested by Azeez and optimized log entries
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 <im...@apache.org>
Authored: Tue Nov 19 23:12:58 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
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();
}