This is an automated email from the ASF dual-hosted git repository.

xbli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 2acf8bb378 Add a Boolean marker when Delete Table operation is 
triggered (#16362)
2acf8bb378 is described below

commit 2acf8bb378fdda19c7cc05cddd71b2f1a7c39922
Author: Chaitanya Deepthi <[email protected]>
AuthorDate: Mon Jul 21 14:08:39 2025 -0700

    Add a Boolean marker when Delete Table operation is triggered (#16362)
    
    * Add a Boolean marker when Delete Table operation is triggered, so 
subclasses can do extra cleanup upon table deletions
---
 .../apache/pinot/core/data/manager/BaseTableDataManager.java  | 11 +++++++++++
 .../pinot/segment/local/data/manager/TableDataManager.java    |  4 ++++
 .../local/upsert/BasePartitionUpsertMetadataManager.java      |  2 +-
 .../pinot/server/starter/helix/HelixInstanceDataManager.java  |  1 +
 4 files changed, 17 insertions(+), 1 deletion(-)

diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
index c809da80dd..79d452e9f0 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
@@ -154,6 +154,7 @@ public abstract class BaseTableDataManager implements 
TableDataManager {
   protected volatile Pair<TableConfig, Schema> _cachedTableConfigAndSchema;
 
   protected volatile boolean _shutDown;
+  protected volatile boolean _isDeleted;
 
   @Override
   public void init(InstanceDataManagerConfig instanceDataManagerConfig, 
HelixManager helixManager,
@@ -692,6 +693,16 @@ public abstract class BaseTableDataManager implements 
TableDataManager {
     return _segmentPreloadExecutor;
   }
 
+  @Override
+  public boolean isDeleted() {
+    return _isDeleted;
+  }
+
+  @Override
+  public void setDeleted(boolean deleted) {
+    _isDeleted = deleted;
+  }
+
   @Override
   public void addSegmentError(String segmentName, SegmentErrorInfo 
segmentErrorInfo) {
     if (_errorCache != null) {
diff --git 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
index 93446f57f1..34b73b9ffb 100644
--- 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
+++ 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
@@ -216,6 +216,10 @@ public interface TableDataManager {
    */
   boolean isSegmentDeletedRecently(String segmentName);
 
+  boolean isDeleted();
+
+  void setDeleted(boolean deleted);
+
   /**
    * Acquires all segments of the table.
    * <p>It is the caller's responsibility to return the segments by calling 
{@link #releaseSegment(SegmentDataManager)}.
diff --git 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
index 3fbc30fce9..ce6070b4ac 100644
--- 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
+++ 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
@@ -1101,7 +1101,7 @@ public abstract class BasePartitionUpsertMetadataManager 
implements PartitionUps
     trackUpdatedSegmentsSinceLastSnapshot(segment);
   }
 
-  private void trackUpdatedSegmentsSinceLastSnapshot(IndexSegment segment) {
+  protected void trackUpdatedSegmentsSinceLastSnapshot(IndexSegment segment) {
     if (_enableSnapshot && segment instanceof ImmutableSegment) {
       _updatedSegmentsSinceLastSnapshot.add(segment);
     }
diff --git 
a/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
 
b/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
index 924e0ff333..3baee22a89 100644
--- 
a/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
+++ 
b/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
@@ -283,6 +283,7 @@ public class HelixInstanceDataManager implements 
InstanceDataManager {
       return;
     }
     LOGGER.info("Shutting down table data manager for table: {}", 
tableNameWithType);
+    tableDataManager.setDeleted(true);
     tableDataManager.shutDown();
     LOGGER.info("Finished shutting down table data manager for table: {}", 
tableNameWithType);
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to