[NO ISSUE][CLUS] Exclude Pending Removal Nodes From Location - user model changes: no - storage format changes: no - interface changes: no
Details: - Exclude pending removel nodes from cluster locations to prevent new jobs from using them as compute locations. - Add additional logging for dataset rebalance. Change-Id: I0c9904b229aa086615a3a8bbdfaf44d51f1e1757 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2523 Reviewed-by: Michael Blow <mb...@apache.org> Integration-Tests: Michael Blow <mb...@apache.org> Tested-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/ad1d30ab Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/ad1d30ab Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/ad1d30ab Branch: refs/heads/release-0.9.4-pre-rc Commit: ad1d30abb32174bc9d7ada81bd8239036e171df2 Parents: 94b6da6 Author: Murtadha Hubail <mhub...@apache.org> Authored: Sun Mar 25 04:59:34 2018 +0300 Committer: Murtadha Hubail <mhub...@apache.org> Committed: Sun Mar 25 07:34:58 2018 -0700 ---------------------------------------------------------------------- .../src/main/java/org/apache/asterix/utils/RebalanceUtil.java | 7 +++++++ .../org/apache/asterix/runtime/utils/ClusterStateManager.java | 1 + 2 files changed, 8 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ad1d30ab/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java index 7bb917f..702b6b4 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java @@ -124,6 +124,9 @@ public class RebalanceUtil { // The target dataset for rebalance. targetDataset = sourceDataset.getTargetDatasetForRebalance(nodeGroupName); + LOGGER.info("Rebalancing dataset {} from node group {} with nodes {} to node group {} with nodes {}", + sourceDataset.getDatasetName(), sourceDataset.getNodeGroupName(), sourceNodes, + targetDataset.getNodeGroupName(), targetNcNames); // Rebalances the source dataset into the target dataset. rebalance(sourceDataset, targetDataset, metadataProvider, hcc, datasetRebalanceCallback); } else { @@ -158,6 +161,7 @@ public class RebalanceUtil { // the source dataset. runMetadataTransaction(metadataProvider, () -> dropSourceDataset(sourceDataset, metadataProvider, hcc)); }); + LOGGER.info("Dataset {} rebalance completed successfully", datasetName); } @FunctionalInterface @@ -238,6 +242,8 @@ public class RebalanceUtil { (ActiveNotificationHandler) appCtx.getActiveNotificationHandler(); IMetadataLockManager lockManager = appCtx.getMetadataLockManager(); lockManager.upgradeDatasetLockToWrite(metadataProvider.getLocks(), DatasetUtil.getFullyQualifiedName(source)); + LOGGER.info("Updating dataset {} node group from {} to {}", source.getDatasetName(), source.getNodeGroupName(), + target.getNodeGroupName()); try { // Updates the dataset entry in the metadata storage MetadataManager.INSTANCE.updateDataset(mdTxnCtx, target); @@ -248,6 +254,7 @@ public class RebalanceUtil { } } MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); + LOGGER.info("dataset {} node group updated to {}", target.getDatasetName(), target.getNodeGroupName()); } finally { lockManager.downgradeDatasetLockToExclusiveModify(metadataProvider.getLocks(), DatasetUtil.getFullyQualifiedName(target)); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ad1d30ab/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java index 7182204..73d6705 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java @@ -280,6 +280,7 @@ public class ClusterStateManager implements IClusterStateManager { clusterActiveLocations.add(p.getActiveNodeId()); } } + clusterActiveLocations.removeAll(pendingRemoval); clusterPartitionConstraint = new AlgebricksAbsolutePartitionConstraint(clusterActiveLocations.toArray(new String[] {})); }