You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mh...@apache.org on 2018/06/22 13:08:15 UTC
asterixdb git commit: [NO ISSUE][REPL] Ignore Replica Request On
Non-Active NC Status
Repository: asterixdb
Updated Branches:
refs/heads/master 244ce6592 -> 4ba23de66
[NO ISSUE][REPL] Ignore Replica Request On Non-Active NC Status
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- If a node isn't in an ACTIVE status, ignore request to
add replica since the node hasn't finished bootstrapping.
Change-Id: I3f94bf640987495a8c95bca989e5ac9451a4a7e5
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2719
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mh...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mb...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/4ba23de6
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/4ba23de6
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/4ba23de6
Branch: refs/heads/master
Commit: 4ba23de669748c6a27a6b86d4a63241365778dc3
Parents: 244ce65
Author: Murtadha Hubail <mh...@apache.org>
Authored: Wed Jun 20 21:38:53 2018 +0300
Committer: Murtadha Hubail <mh...@apache.org>
Committed: Fri Jun 22 06:06:46 2018 -0700
----------------------------------------------------------------------
.../main/java/org/apache/asterix/app/nc/ReplicaManager.java | 9 +++++++++
1 file changed, 9 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/4ba23de6/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
index 5c5ce93..a0e3c8b 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
@@ -36,9 +36,11 @@ import org.apache.asterix.common.storage.ReplicaIdentifier;
import org.apache.asterix.common.transactions.IRecoveryManager;
import org.apache.asterix.replication.api.PartitionReplica;
import org.apache.asterix.transaction.management.resource.PersistentLocalResourceRepository;
+import org.apache.hyracks.api.client.NodeStatus;
import org.apache.hyracks.api.config.IApplicationConfig;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.control.common.controllers.NCConfig;
+import org.apache.hyracks.control.nc.NodeControllerService;
import org.apache.hyracks.storage.common.LocalResource;
import org.apache.hyracks.util.annotations.ThreadSafe;
import org.apache.logging.log4j.LogManager;
@@ -74,6 +76,13 @@ public class ReplicaManager implements IReplicaManager {
LOGGER.info("ignoring request to add replica to ourselves");
return;
}
+ final NodeControllerService controllerService =
+ (NodeControllerService) appCtx.getServiceContext().getControllerService();
+ final NodeStatus nodeStatus = controllerService.getNodeStatus();
+ if (nodeStatus != NodeStatus.ACTIVE) {
+ LOGGER.warn("Ignoring request to add replica. Node is not ACTIVE yet. Current status: {}", nodeStatus);
+ return;
+ }
replicas.computeIfAbsent(id, k -> new PartitionReplica(k, appCtx));
replicas.get(id).sync();
}