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 66fc43e16b49e2eb3617e62870c1542a3cb6f931
Author: Ritik Raj <[email protected]>
AuthorDate: Thu Aug 8 00:52:42 2024 +0530

    [ASTERIXDB-3476][STO] Mark column index active, after required steps 
completed
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    For Column Indexes, "isActive" is marked to true,
    before completing all the required steps for column Index activation.
    And if some failure happens before completing the steps,
    this leaves "isActive" to true, and index "isOpen" to false.
    
    when next query comes for the index,because "isOpen" == false,
    the index activation is called but as "isActive" flag is true,
    which causes the exception to be thrown and the query to fail.
    and requires a restart to cluster restart to undo the "isActive" state.
    
    Ext-ref: MB-62964
    Change-Id: Id09c2530303ae22a5c6e9729bfb66e73baf3e318
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18632
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Ritik Raj <[email protected]>
    Reviewed-by: Wail Alkowaileet <[email protected]>
---
 .../storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java       | 6 ++++++
 .../hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java       | 4 ++++
 2 files changed, 10 insertions(+)

diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
index 958bfde3d6..d12fbe9b13 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
@@ -87,6 +87,11 @@ public class LSMColumnBTree extends LSMBTree {
     @Override
     public synchronized void activate() throws HyracksDataException {
         super.activate();
+        postLoadingDiskComponents();
+    }
+
+    @Override
+    protected void postLoadingDiskComponents() throws HyracksDataException {
         if (diskComponents.isEmpty()) {
             columnMetadata = columnManager.activate();
         } else {
@@ -95,6 +100,7 @@ public class LSMColumnBTree extends LSMBTree {
         }
 
         diskCacheManager.activate(columnMetadata.getNumberOfColumns(), 
diskComponents, diskBufferCache);
+        super.postLoadingDiskComponents();
     }
 
     @Override
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
index 25d928c349..e9a3abe3d1 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
@@ -200,6 +200,10 @@ public abstract class AbstractLSMIndex implements 
ILSMIndex {
             throw 
HyracksDataException.create(ErrorCode.CANNOT_ACTIVATE_ACTIVE_INDEX);
         }
         loadDiskComponents();
+        postLoadingDiskComponents();
+    }
+
+    protected void postLoadingDiskComponents() throws HyracksDataException {
         isActive = true;
     }
 

Reply via email to