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 b22d05df3328338ccd245010c054d6152598817f Author: Murtadha Hubail <[email protected]> AuthorDate: Wed Mar 2 02:28:38 2022 +0300 [NO ISSUE][STO] Limit local storage clean up to node partitions - user model changes: no - storage format changes: no - interface changes: no Details: - When attempting to delete invalid indexes during global recovery, only delete invalid indexes of partitions where the node is the current master since the master of each partition will ask the replica to delete the invalid indexes. Change-Id: I9b337e83ee138a1806bc0e38e2fc3e6870c65373 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/15503 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> --- .../apache/asterix/app/message/StorageCleanupRequestMessage.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/StorageCleanupRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/StorageCleanupRequestMessage.java index 5e52517..281f654 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/StorageCleanupRequestMessage.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/StorageCleanupRequestMessage.java @@ -21,6 +21,7 @@ package org.apache.asterix.app.message; import static org.apache.hyracks.util.ExitUtil.EC_NC_FAILED_TO_NOTIFY_TASKS_COMPLETED; import java.util.Map; +import java.util.Set; import org.apache.asterix.common.api.IDatasetLifecycleManager; import org.apache.asterix.common.api.INcApplicationContext; @@ -57,10 +58,12 @@ public class StorageCleanupRequestMessage extends CcIdentifiedMessage implements PersistentLocalResourceRepository localResourceRepository = (PersistentLocalResourceRepository) appContext.getLocalResourceRepository(); Map<Long, LocalResource> localResources = localResourceRepository.loadAndGetAllResources(); + Set<Integer> nodePartitions = appContext.getReplicaManager().getPartitions(); for (LocalResource resource : localResources.values()) { DatasetLocalResource lr = (DatasetLocalResource) resource.getResource(); - if (MetadataIndexImmutableProperties.isMetadataDataset(lr.getDatasetId())) { - // skip metadata indexes + if (!nodePartitions.contains(lr.getPartition()) + || MetadataIndexImmutableProperties.isMetadataDataset(lr.getDatasetId())) { + // skip replica partitions and metadata indexes continue; } if (!validDatasetIds.contains(lr.getDatasetId())) {
