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())) {

Reply via email to