This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit f7d22da9158558c71687f25072e9d74a72073a91 Author: Murtadha Hubail <[email protected]> AuthorDate: Sun Feb 6 19:43:56 2022 +0300 [NO ISSUE][CLUS] Avoid eager refresh cluster state - user model changes: no - storage format changes: no - interface changes: no Details: - When clearing rebalance required cluster state, let the rebalance operation update the cluster state to avoid changing the cluster state during the rebalance. - Make file replication logs debug level. Change-Id: Ia1f3d84fe8ad82f34d4ad039efd353f7b534d4d6 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/15163 Tested-by: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> --- .../apache/asterix/replication/messaging/ReplicateFileTask.java | 2 +- .../java/org/apache/asterix/replication/sync/FileSynchronizer.java | 2 +- .../java/org/apache/asterix/runtime/utils/ClusterStateManager.java | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/ReplicateFileTask.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/ReplicateFileTask.java index bf1613c..5bec257 100644 --- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/ReplicateFileTask.java +++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/ReplicateFileTask.java @@ -95,7 +95,7 @@ public class ReplicateFileTask implements IReplicaTask { } //delete mask Files.delete(maskPath); - LOGGER.info("received file {} from master", localPath); + LOGGER.debug("received file {} from master", localPath); ReplicationProtocol.sendAck(worker.getChannel(), worker.getReusableBuffer()); } catch (IOException e) { throw new ReplicationException(e); diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/sync/FileSynchronizer.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/sync/FileSynchronizer.java index 813b293..968f883 100644 --- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/sync/FileSynchronizer.java +++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/sync/FileSynchronizer.java @@ -58,7 +58,7 @@ public class FileSynchronizer { String masterNode = appCtx.getReplicaManager().isPartitionOwner(replica.getIdentifier().getPartition()) ? appCtx.getServiceContext().getNodeId() : null; ReplicateFileTask task = new ReplicateFileTask(file, filePath.getFile().length(), metadata, masterNode); - LOGGER.info("attempting to replicate {} to replica {}", task, replica); + LOGGER.debug("attempting to replicate {} to replica {}", task, replica); ReplicationProtocol.sendTo(replica, task); // send the file itself try (RandomAccessFile fromFile = new RandomAccessFile(filePath.getFile(), "r"); 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 6de1dda..052f568 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 @@ -470,7 +470,12 @@ public class ClusterStateManager implements IClusterStateManager { @Override public synchronized void setRebalanceRequired(boolean rebalanceRequired) throws HyracksDataException { this.rebalanceRequired = rebalanceRequired; - refreshState(); + // if the cluster requires a rebalance, we will refresh the cluster state to ensure the state is updated + // to REBALANCE_REQUIRED. Otherwise, we will let the rebalance operation update the cluster state to avoid + // changing the cluster state during the rebalance + if (rebalanceRequired) { + refreshState(); + } } @Override
