deepthi912 opened a new pull request, #19010:
URL: https://github.com/apache/pinot/pull/19010
<!-- pinot-pr-flow:start -->
### PR flow
Changed default consuming segment consistency mode from RESTRICTED to
PROTECTED, enabling force\-commit/reload with metadata reconciliation\.
```mermaid
flowchart TD
N0["Default mode#58; PROTECTED #40;F3#41;"]:::stModified
classDef stAdded fill:#dafbe1,stroke:#1a7f37,color:#1f2328,stroke-width:2px
classDef stModified
fill:#fff8c5,stroke:#9a6700,color:#1f2328,stroke-width:2px
classDef stRemoved
fill:#ffebe9,stroke:#cf222e,color:#1f2328,stroke-width:2px
classDef stUnchanged
fill:#f6f8fa,stroke:#656d76,color:#1f2328,stroke-width:1px
```
AI-generated · Green: added · Yellow: modified · Red: removed · Gray:
existing
<details>
<summary>Diff evidence</summary>
- F3:
pinot\-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener\.java
—
[before](https://github.com/apache/pinot/blob/a979a6a0d8e173e887a68dd294e8013dc16ca43d/pinot-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java)
·
[after](https://github.com/apache/pinot/blob/637f900f054d85e894178b203c599bc8906fbb04/pinot-spi/src/main/java/org/apache/pinot/spi/utils/ConsumingSegmentConsistencyModeListener.java)
</details>
- [ ] Regenerate PR flow
<!-- pinot-pr-flow:meta
eyJiYXNlX3NoYSI6ImE5NzlhNmEwZDhlMTczZTg4N2E2OGRkMjk0ZTgwMTNkYzE2Y2E0M2QiLCJjb250ZXh0X2hhc2giOiJmZjJmNjIzMzc0YTA0ZGRhYjBkMDQxZGQzYWEzNmVhYjg2NDU4ZTAyYmI4NWU2NGUxZWI0YWIwZDI3ZmNhMTI1IiwiZ2VuZXJhdGVkX2F0IjoxNzg5NTM4OTAyLCJoZWFkX3NoYSI6IjYzN2Y5MDBmMDU0ZDg1ZTg5NDE3OGIyMDNjNTk5YmM4OTA2ZmJiMDQiLCJtb2RlbCI6Im52aWRpYS9uZW1vdHJvbi0zLXN1cGVyLTEyMGItYTEyYjpmcmVlIiwib2JzZXJ2ZWRfYmFzZV9zaGEiOiJhOTc5YTZhMGQ4ZTE3M2U4ODdhNjhkZDI5NGU4MDEzZGMxNmNhNDNkIiwicG9saWN5IjoicGlub3QtcHItZmxvdy12MSJ9
-->
<!-- pinot-pr-flow:signature
54ed4c6650ab48f6fcaaa2ecc6d94f71d876288868a365bc85a8fe2a4ead9da6 -->
<!-- pinot-pr-flow:end -->
## Summary
`pinot.server.consuming.segment.consistency.mode` was introduced in #17503
with three modes:
- `RESTRICTED` (current default) — blocks force-commit/reload during the
risky consuming-segment transition window for partial-upsert and
`dropOutOfOrderRecord`/`outOfOrderRecordColumn` tables. It only *prevents* the
risky operation from running; it doesn't resolve anything.
- `PROTECTED` — allows force-commit/reload, and reconciles the upsert
metadata back to a consistent state if a discrepancy is detected during segment
commit or removal.
- `UNSAFE` — allows force-commit/reload with no reconciliation.
This PR proposes flipping the default from `RESTRICTED` to `PROTECTED`,
since `RESTRICTED` alone doesn't get an affected table to a correct state — it
just blocks operational flows (reload, force-commit, Segment Refresh Task,
index changes) on partial-upsert / `dropOutOfOrderRecord` tables indefinitely,
until an operator manually opts into `PROTECTED`. Defaulting to `PROTECTED`
means these operations work out of the box, with the metadata-reconciliation
safety net already in place.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]