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

Jackie-Jiang 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 dcda568fbaa Default pinot.server.consuming.segment.consistency.mode to 
PROTECTED (#19010)
dcda568fbaa is described below

commit dcda568fbaaf50007abf7734eb4756572d0a63e4
Author: Chaitanya Deepthi <[email protected]>
AuthorDate: Mon Oct 12 12:20:18 2026 -0700

    Default pinot.server.consuming.segment.consistency.mode to PROTECTED 
(#19010)
---
 .../tests/PartialUpsertTableRebalanceIntegrationTest.java            | 3 ++-
 .../upsert/ConcurrentMapPartitionUpsertMetadataManagerTest.java      | 2 ++
 .../org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java   | 1 +
 .../pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java     | 5 +++--
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/PartialUpsertTableRebalanceIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/PartialUpsertTableRebalanceIntegrationTest.java
index 2e1ce5cb305..a657e18288a 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/PartialUpsertTableRebalanceIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/PartialUpsertTableRebalanceIntegrationTest.java
@@ -232,7 +232,8 @@ public class PartialUpsertTableRebalanceIntegrationTest 
extends BaseClusterInteg
     waitForAllDocsLoaded(600_000L, 300);
 
     // Partial-upsert tables need PROTECTED consuming segment consistency mode 
for reload to force-commit
-    // consuming segments; RESTRICTED (default) skips force-commit and reload 
never completes.
+    // consuming segments; RESTRICTED skips force-commit and reload never 
completes. Set explicitly here
+    // rather than relying on the default so this test doesn't depend on it.
     try {
       updateClusterConfig(
           
Map.of(CommonConstants.ConfigChangeListenerConstants.CONSUMING_SEGMENT_CONSISTENCY_MODE,
diff --git 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/upsert/ConcurrentMapPartitionUpsertMetadataManagerTest.java
 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/upsert/ConcurrentMapPartitionUpsertMetadataManagerTest.java
index 35e2adb96d4..02e50dee229 100644
--- 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/upsert/ConcurrentMapPartitionUpsertMetadataManagerTest.java
+++ 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/upsert/ConcurrentMapPartitionUpsertMetadataManagerTest.java
@@ -2692,6 +2692,8 @@ public class 
ConcurrentMapPartitionUpsertMetadataManagerTest {
     ConsumingSegmentConsistencyModeListener consistencyModeListener =
         ConsumingSegmentConsistencyModeListener.getInstance();
     try {
+      // Set the mode explicitly rather than relying on the default, which 
this test is not about.
+      
consistencyModeListener.setMode(ConsumingSegmentConsistencyModeListener.Mode.RESTRICTED);
       
assertFalse(upsertMetadataManager.shouldRevertMetadataOnInconsistency(mutableSegment));
       
consistencyModeListener.setMode(ConsumingSegmentConsistencyModeListener.Mode.PROTECTED);
       
assertTrue(upsertMetadataManager.shouldRevertMetadataOnInconsistency(mutableSegment));
diff --git 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java
 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java
index 371b7431096..66eef1d9794 100644
--- 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java
+++ 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java
@@ -2742,6 +2742,7 @@ public class TableConfigUtilsTest {
         ConsumingSegmentConsistencyModeListener.getInstance();
     try {
       // Without PROTECTED mode nothing is reverted, so every policy is allowed
+      
consistencyModeListener.setMode(ConsumingSegmentConsistencyModeListener.Mode.RESTRICTED);
       checkConsumptionDuringUpsertRevert(partialUpsertConfig, 
ParallelSegmentConsumptionPolicy.ALLOW_ALWAYS, false);
 
       
consistencyModeListener.setMode(ConsumingSegmentConsistencyModeListener.Mode.PROTECTED);
diff --git 
a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java
 
b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java
index 9020d9ac1a2..13b6d585184 100644
--- 
a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java
+++ 
b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java
@@ -30,7 +30,8 @@ import org.slf4j.LoggerFactory;
 
 /// Singleton class to manage the configuration for force commit on consuming 
segments
 /// for upsert tables with inconsistent state configurations (partial upsert 
or dropOutOfOrderRecord=true or
-/// outOfOrderColumn). By default, the force commit and reload is disabled
+/// outOfOrderColumn). By default, force commit and reload are enabled, with 
the upsert metadata reverted to
+/// resolve any detected inconsistencies (PROTECTED mode).
 /// This configuration is dynamically updatable via ZK cluster config without 
requiring a server restart.
 public class ConsumingSegmentConsistencyModeListener implements 
PinotClusterConfigChangeListener {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(ConsumingSegmentConsistencyModeListener.class);
@@ -51,7 +52,7 @@ public class ConsumingSegmentConsistencyModeListener 
implements PinotClusterConf
     /// Inconsistency checks and metadata revert are skipped.
     UNSAFE(true);
 
-    public static final Mode DEFAULT_CONSUMING_SEGMENT_CONSISTENCY_MODE = 
RESTRICTED;
+    public static final Mode DEFAULT_CONSUMING_SEGMENT_CONSISTENCY_MODE = 
PROTECTED;
 
     private final boolean _forceCommitAllowed;
 


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

Reply via email to