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]