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();
     }