Move failure detector settings to cluster overall. Temporarily stop downing nodes when unreachable at application layer.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/50b936d5 Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/50b936d5 Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/50b936d5 Branch: refs/heads/asf-site Commit: 50b936d563901683bfcc1ab35f9ad34494c1c95d Parents: 2a89d2d Author: Michael Russo <mru...@apigee.com> Authored: Mon Sep 26 11:14:55 2016 -0700 Committer: Michael Russo <mru...@apigee.com> Committed: Mon Sep 26 11:14:55 2016 -0700 ---------------------------------------------------------------------- .../actorsystem/ActorSystemManagerImpl.java | 11 +++++++++- .../actorsystem/ClusterListener.java | 21 ++++++++++++++------ .../uniquevalues/UniqueValuesServiceImpl.java | 10 +--------- 3 files changed, 26 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/50b936d5/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ActorSystemManagerImpl.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ActorSystemManagerImpl.java b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ActorSystemManagerImpl.java index 7e7df9c..1021b1a 100644 --- a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ActorSystemManagerImpl.java +++ b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ActorSystemManagerImpl.java @@ -20,6 +20,7 @@ package org.apache.usergrid.persistence.actorsystem; import akka.actor.*; +import akka.cluster.Cluster; import akka.cluster.client.ClusterClient; import akka.cluster.client.ClusterClientReceptionist; import akka.cluster.client.ClusterClientSettings; @@ -312,13 +313,21 @@ public class ActorSystemManagerImpl implements ActorSystemManager { }} ); put( "cluster", new HashMap<String, Object>() {{ - put( "max-nr-of-instances-per-node", numInstancesPerNode); + put( "max-nr-of-instances-per-node", numInstancesPerNode); // this sets default if router does not set put( "roles", Collections.singletonList("io") ); put( "seed-nodes", new ArrayList<String>() {{ for (String seed : seeds) { add( seed ); } }} ); + put( "failure-detector", new HashMap<String, Object>() {{ + put( "threshold", "20" ); + put( "acceptable-heartbeat-pause", "6 s" ); + put( "heartbeat-interval", "1 s" ); + put( "heartbeat-request", new HashMap<String, Object>() {{ + put( "expected-response-after", "3 s" ); + }} ); + }} ); }} ); }} ); http://git-wip-us.apache.org/repos/asf/usergrid/blob/50b936d5/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClusterListener.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClusterListener.java b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClusterListener.java index a568295..d0a758d 100644 --- a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClusterListener.java +++ b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/ClusterListener.java @@ -78,10 +78,12 @@ public class ClusterListener extends UntypedActor { java.lang.Runtime.getRuntime().exec("ping -c 1 "+hostname).waitFor() == 0; if(networkReachable){ - logger.info("Unreachable member {} is accessible on the network, " + - "application must have died. Marking member down", event.member()); + logger.info("Unreachable member {} is accessible on the network.", event.member()); - cluster.down(event.member().address()); +// logger.info("Unreachable member {} is accessible on the network, " + +// "application must have died. Marking member down", event.member()); +// +// cluster.down(event.member().address()); }else{ logger.warn("Unreachable member {} is not accessible on the network, " + @@ -95,9 +97,16 @@ public class ClusterListener extends UntypedActor { } else if (message instanceof ClusterEvent.MemberEvent) { ClusterEvent.MemberEvent event = (ClusterEvent.MemberEvent) message; - if(logger.isTraceEnabled()){ - logger.trace("MemberEvent occurred for member: {}, Event: {}", event.member(), event.toString()); - } + logger.info("MemberEvent occurred for member: {}, Event: {}", event.member(), event.toString()); + + } else if (message instanceof ClusterEvent.LeaderChanged) { + ClusterEvent.LeaderChanged event = (ClusterEvent.LeaderChanged) message; + logger.info("LeaderChanged occurred for leader: {}, getLeader: {}, Event: {}", + event.leader(), event.getLeader(), event.toString()); + + } else if (message instanceof ClusterEvent.MemberExited) { + ClusterEvent.MemberExited event = (ClusterEvent.MemberExited) message; + logger.info("MemberExited occurred for member: {}, Event: {}", event.member(), event.toString()); } else { unhandled(message); http://git-wip-us.apache.org/repos/asf/usergrid/blob/50b936d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java index 82dc8cc..1b13d01 100644 --- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java +++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java @@ -342,15 +342,7 @@ public class UniqueValuesServiceImpl implements UniqueValuesService { put( "enabled", "on" ); put( "allow-local-routees", "on" ); put( "use-role", "io" ); - put( "max-nr-of-instances-per-node", numInstancesPerNode ); - put( "failure-detector", new HashMap<String, Object>() {{ - put( "threshold", "20" ); - put( "acceptable-heartbeat-pause", "6 s" ); - put( "heartbeat-interval", "1 s" ); - put( "heartbeat-request", new HashMap<String, Object>() {{ - put( "expected-response-after", "3 s" ); - }} ); - }} ); + put( "max-nr-of-instances-per-node", numInstancesPerNode ); // this sets value specific to this router }} ); }} );