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

Reply via email to