From d14375fb2fbea8065bfa41a99f00b79da0656c40 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Mon, 6 Feb 2012 16:40:23 -0800 Subject: [PATCH] Agent LB: never get a part of the hosts from the xen cluster; skip the cluster if it has more hosts than we need Reviewed-by: Alex Huang --- .../ClusterBasedAgentLoadBalancerPlanner.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java b/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java index d8075ece657..7ae8f2f7507 100644 --- a/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java +++ b/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java @@ -101,7 +101,8 @@ public class ClusterBasedAgentLoadBalancerPlanner implements AgentLoadBalancerPl int hostsLeft = directHosts.size(); List hostsToReturn = new ArrayList(); - s_logger.debug("Management server " + msId + " can give away " + hostsToGive + " as it currently owns " + allHosts.size() + " and the average agent load in the system is " + avLoad + "; finalyzing list of hosts to give away..."); + s_logger.debug("Management server " + msId + " can give away " + hostsToGive + " as it currently owns " + allHosts.size() + + " and the average agent load in the system is " + avLoad + "; finalyzing list of hosts to give away..."); for (Long cluster : hostToClusterMap.keySet()) { List hostsInCluster = hostToClusterMap.get(cluster); hostsLeft = hostsLeft - hostsInCluster.size(); @@ -109,17 +110,10 @@ public class ClusterBasedAgentLoadBalancerPlanner implements AgentLoadBalancerPl s_logger.debug("Trying cluster id=" + cluster); if (hostsInCluster.size() > hostsLeftToGive) { + s_logger.debug("Skipping cluster id=" + cluster + " as it has more hosts than we need: " + hostsInCluster.size() + " vs " + hostsLeftToGive); if (hostsLeft >= hostsLeftToGive) { - s_logger.debug("Skipping cluster id=" + cluster + " as it has more hosts that we need: " + hostsInCluster.size() + " vs " + hostsLeftToGive); continue; } else { - //get all hosts that are needed from the cluster - s_logger.debug("Taking " + hostsLeftToGive + " from cluster " + cluster); - for (int i=0; i < hostsLeftToGive; i++) { - s_logger.trace("Taking host id=" + hostsInCluster.get(i) + " from cluster " + cluster); - hostsToReturn.add(hostsInCluster.get(i)); - } - break; } } else {