herbherbherb opened a new pull request, #15771: URL: https://github.com/apache/iceberg/pull/15771
### Summary Adds a `CommitGate` plugin interface to `IcebergSink` that controls whether committables are emitted downstream or buffered in Flink `ListState`. This enables use cases like pausing commits during catalog maintenance operations while keeping the Flink job running. Resolves #15770. ### Changes - New: `CommitGate.java` -- `@FunctionalInterface` with a single method: `boolean isCommitAllowed(long checkpointId)` - Modified: `IcebergWriteAggregator` -- accepts optional gate, adds `ListState` for buffering, gate check + buffer/flush logic in `prepareSnapshotPreBarrier()`, state initialization in `initializeState()` - Modified: `IcebergSink.Builder` -- new `commitGate()` method, passed through to aggregator ### Compatibility - No behavioral change when the gate is not set (null default) - Buffered committables are checkpointed in `ListState`, so recovery works correctly - No changes to public API signatures of existing methods - Fully backward compatible -- 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]
