Updated Branches: refs/heads/master a411230a5 -> e11e713e8
Removed topology read locks from request delegator in load balancer Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/76a73c3a Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/76a73c3a Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/76a73c3a Branch: refs/heads/master Commit: 76a73c3ae0c516aa578ce8777017073837f392db Parents: a1b99dd Author: Imesh Gunaratne <[email protected]> Authored: Mon Dec 16 11:54:15 2013 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Mon Dec 16 11:54:15 2013 +0530 ---------------------------------------------------------------------- .../stratos/load/balancer/RequestDelegator.java | 59 ++++++++------------ 1 file changed, 24 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/76a73c3a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java index 453be96..4a6bbc5 100644 --- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java +++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java @@ -27,7 +27,6 @@ import org.apache.stratos.load.balancer.conf.LoadBalancerConfiguration; import org.apache.stratos.load.balancer.context.LoadBalancerContext; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Member; -import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import java.util.ArrayList; @@ -45,52 +44,42 @@ public class RequestDelegator { } public Member findNextMemberFromHostName(String hostName) { - try { - if (hostName == null) - return null; + if (hostName == null) + return null; - TopologyManager.acquireReadLock(); - long startTime = System.currentTimeMillis(); + long startTime = System.currentTimeMillis(); - Cluster cluster = LoadBalancerContext.getInstance().getHostNameClusterMap().getCluster(hostName); - if (cluster != null) { - Member member = findNextMemberInCluster(cluster); - if (member != null) { - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [member] %s", (endTime - startTime), member.getServiceName(), member.getClusterId(), member.getMemberId())); - } + Cluster cluster = LoadBalancerContext.getInstance().getHostNameClusterMap().getCluster(hostName); + if (cluster != null) { + Member member = findNextMemberInCluster(cluster); + if (member != null) { + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [member] %s", (endTime - startTime), member.getServiceName(), member.getClusterId(), member.getMemberId())); } - return member; } - return null; - } finally { - TopologyManager.releaseReadLock(); + return member; } + return null; } public Member findNextMemberFromTenantId(String hostName, int tenantId) { - try { - TopologyManager.acquireReadLock(); - long startTime = System.currentTimeMillis(); + long startTime = System.currentTimeMillis(); - // Find cluster from host name and tenant id - Cluster cluster = LoadBalancerContext.getInstance().getMultiTenantClusterMap().getCluster(hostName, tenantId); - if (cluster != null) { - Member member = findNextMemberInCluster(cluster); - if (member != null) { - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [tenant-id] %d [member] %s", - (endTime - startTime), member.getServiceName(), member.getClusterId(), tenantId, member.getMemberId())); - } + // Find cluster from host name and tenant id + Cluster cluster = LoadBalancerContext.getInstance().getMultiTenantClusterMap().getCluster(hostName, tenantId); + if (cluster != null) { + Member member = findNextMemberInCluster(cluster); + if (member != null) { + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [tenant-id] %d [member] %s", + (endTime - startTime), member.getServiceName(), member.getClusterId(), tenantId, member.getMemberId())); } - return member; } - return null; - } finally { - TopologyManager.releaseReadLock(); + return member; } + return null; } private Member findNextMemberInCluster(Cluster cluster) {
