You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ma...@apache.org on 2014/11/25 11:09:01 UTC
stratos git commit: Fixed Stratos LB mix up members of different
multi-tenant clusters in 10x10 concurrency issue
Repository: stratos
Updated Branches:
refs/heads/master 5ef2fa8cc -> 8293defc0
Fixed Stratos LB mix up members of different multi-tenant clusters in 10x10 concurrency issue
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8293defc
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8293defc
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8293defc
Branch: refs/heads/master
Commit: 8293defc07450d7f80d65188ef2ad40b1b93e749
Parents: 5ef2fa8
Author: Manula Thantriwatte <ma...@apache.org>
Authored: Tue Nov 25 10:08:28 2014 +0000
Committer: Manula Thantriwatte <ma...@apache.org>
Committed: Tue Nov 25 10:08:28 2014 +0000
----------------------------------------------------------------------
.../apache/stratos/load/balancer/RequestDelegator.java | 8 ++++++--
.../balancer/endpoint/TenantAwareLoadBalanceEndpoint.java | 10 +++++++---
.../stratos/manager/utils/CartridgeConfigFileReader.java | 1 -
3 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/8293defc/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 677c037..d8cb197 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
@@ -43,7 +43,7 @@ public class RequestDelegator {
this.algorithm = algorithm;
}
- public Member findNextMemberFromHostName(String hostName) {
+ public Member findNextMemberFromHostName(String hostName, String messageId) {
if (hostName == null)
return null;
@@ -51,11 +51,15 @@ public class RequestDelegator {
Cluster cluster = LoadBalancerContext.getInstance().getHostNameClusterMap().getCluster(hostName);
if (cluster != null) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Cluster %s identified for request %s", cluster.getClusterId(), messageId));
+ }
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()));
+ log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [member] %s [request-id] %s",
+ (endTime - startTime), member.getServiceName(), member.getClusterId(), member.getMemberId(), messageId));
}
}
return member;
http://git-wip-us.apache.org/repos/asf/stratos/blob/8293defc/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
index 0ed247f..b77cf7c 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
@@ -106,7 +106,8 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
sessionInformation = dispatcher.getSession(synCtx);
if (sessionInformation != null) {
if (log.isDebugEnabled()) {
- log.debug(String.format("Existing session found: %s", sessionInformation.getId()));
+ log.debug(String.format("Existing session found: %s for request: %s", sessionInformation.getId(),
+ synCtx.getMessageID()));
}
currentMember = sessionInformation.getMember();
@@ -225,6 +226,9 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
private org.apache.axis2.clustering.Member findNextMember(MessageContext synCtx) {
String targetHost = extractTargetHost(synCtx);
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Request %s for host %s", synCtx.getMessageID(), targetHost));
+ }
if (!requestDelegator.isTargetHostValid(targetHost)) {
throwSynapseException(synCtx, 404, String.format("Unknown host name %s", targetHost));
}
@@ -240,7 +244,7 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
if(tenantId == -1) {
// If there is no tenant involves in the URL, Find next member from host name
- member = requestDelegator.findNextMemberFromHostName(targetHost);
+ member = requestDelegator.findNextMemberFromHostName(targetHost, synCtx.getMessageID());
} else if (tenantExists(tenantId)) {
// Tenant found, find member from hostname and tenant id
member = requestDelegator.findNextMemberFromTenantId(targetHost, tenantId);
@@ -714,7 +718,7 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
try {
if (log.isDebugEnabled()) {
- log.debug(String.format("Sending request to endpoint: %s", to.getAddress()));
+ log.debug(String.format("Sending request %s to endpoint: %s", synCtx.getMessageID(), to.getAddress()));
}
endpoint.send(synCtx);
http://git-wip-us.apache.org/repos/asf/stratos/blob/8293defc/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
index 0ca8b3a..35b4e48 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
@@ -25,7 +25,6 @@ import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.manager.internal.DataHolder;
import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.securevault.SecretResolver;
import org.wso2.securevault.SecretResolverFactory;