Skip to content

[FLINK-40212][docs] Add Regional Checkpoint user documentation - #28966

Open
raoraoxiong wants to merge 8 commits into
apache:masterfrom
raoraoxiong:raorao/FLINK-40212-regional-checkpoint-docs
Open

[FLINK-40212][docs] Add Regional Checkpoint user documentation#28966
raoraoxiong wants to merge 8 commits into
apache:masterfrom
raoraoxiong:raorao/FLINK-40212-regional-checkpoint-docs

Conversation

@raoraoxiong

Copy link
Copy Markdown
Contributor

Purpose

Adds user-facing documentation for the Regional Checkpoint feature (FLIP-600 Phase 10).

Changes

Commit 1: User documentation

  • Document configuration options, prerequisites, and limitations
  • Document notifyRegionalCheckpointComplete and notifyRegionalCheckpointFallback APIs with code examples
  • Document two-tier max-consecutive-failures semantics (Tier 1: force next global; Tier 2: abort + reset)
  • Document Per-Region timeout handling
  • Document bounded source forced global checkpoint behavior
  • Document metric (regional_checkpoint_count) and REST API fields
  • Document checkpoint cleanup with reference chain protection
  • Document troubleshooting guide

Testing

  • Documentation only, no code changes

Dependencies

  • No code dependencies (documentation can be merged independently)

Generated-by: CodeBuddy Code (GLM-5.2)

…iguration and refCheckpointId infrastructure

- Add CheckpointListener.notifyRegionalCheckpointComplete(long, RegionalCheckpointInfo) for healthy-region tasks
- Add CheckpointListener.notifyRegionalCheckpointFallback(long, long) for failed-region tasks
- Add RegionalCheckpointInfo class with fallback checkpoint subtask mapping
- Add OperatorCoordinator.supportsRegionCheckpoint() and checkpointCoordinatorForRegionFallback()
- Wire OperatorCoordinatorCheckpointContext and OperatorCoordinatorHolder for forwarding
- Add 3 config options: region.enabled, region.max-failure-ratio, region.max-consecutive-failures
- Add refCheckpointId field to OperatorSubtaskState for tracking historical state references
- Add MetadataV7Serializer for backward-compatible serialization of refCheckpointId
- Add refCheckpointId to SubtaskStateStats/TaskStateStats for REST API aggregation
- Add CheckpointSubsumeHelper for reference-aware checkpoint cleanup
- Add regional config fields to CheckpointCoordinatorConfiguration

Generated-by: CodeBuddy Code (GLM-5.2)
…d SourceCoordinator fallback

- Add RegionalCheckpointHandler: decline buffering, region failure judgment, state recombination,
  two-tier max-consecutive-failures (Tier 1: force next global; Tier 2: abort + reset)
- Wire CheckpointCoordinator to delegate regional checkpoint logic to RegionalCheckpointHandler
- Add PendingCheckpoint methods: recordDecline, areAllTasksResponded, markUnacknowledgedTasksAsDeclined,
  reportFallbackSubtaskStats, finalizeRegionalCheckpoint
- Add DefaultCompletedCheckpointStore.computeReferencedCheckpointIds for cleaner reference protection
- Implement SourceCoordinator.supportsRegionCheckpoint() and checkpointCoordinatorForRegionFallback()
- Implement SplitAssignmentTracker per-checkpoint assignment history with backward-compatible serialization
- Wire Regional Checkpoint config through StreamGraph
- Add unit tests: success path, consecutive limit, state assembly, deferred abort, cleaner, config

Generated-by: CodeBuddy Code (GLM-5.2)
…dispatch and local state cleanup

- Extend confirmCheckpoint RPC with fallbackCheckpointId parameter (reuses task-side
  checkpoint-complete RPC path so notification survives task restarts)
- Add Task.notifyRegionalCheckpointFallback + CheckpointableTask.notifyRegionalCheckpointFallbackAsync
- Implement StreamTask.notifyRegionalCheckpointFallbackAsync with SubtaskCheckpointCoordinator
- Add SubtaskCheckpointCoordinator.notifyRegionalCheckpointFallback + OperatorChain propagation
- Add AbstractUdfStreamOperator forwarding to user functions
- Add TaskStateManager.pruneStateForCheckpoint for local state cleanup (FLIP-600 Section 9)
- TaskExecutor.confirmCheckpoint dispatches to notifyRegionalCheckpointFallback or notifyCheckpointComplete

Generated-by: CodeBuddy Code (GLM-5.2)
… source forced global checkpoint

- Per-Region Timeout: CheckpointCanceller marks unacknowledged tasks as declined and
  triggers tryCompleteRegionalCheckpoint instead of aborting (FLIP-600 Section 9)
- Bounded Source: DefaultExecutionGraph injects allSourcesFinishedChecker; when all sources
  finished, next checkpoint is forced global to ensure side effects committed before termination
- Add RegionalCheckpointTimeoutTest and RegionalCheckpointBoundedSourceTest

Generated-by: CodeBuddy Code (GLM-5.2)
- Add RegionalCheckpointITCase with white-box detection signals for regional fallback
  notifications (numRegionalFallbackNotifications, numRegionalCompleteNotifications)
- RegionFailingMapFunction implements CheckpointListener to verify notification dispatch
- Tests: regional checkpoint during region failover, source data not lost, forced global
  after consecutive limit, ALL_TO_ALL topology fallback

Generated-by: CodeBuddy Code (GLM-5.2)
…ST API fields

- Rename metric to regional_checkpoint_count (snake_case) and change from Gauge to Counter
- Add ref_checkpoint_id to CompletedSubtaskCheckpointStatistics
- Add oldest_ref_checkpoint_id to TaskCheckpointStatistics and CheckpointStatistics (cross-subtask/task min aggregation)
- Add regional_checkpoint_enabled, regional_max_failure_ratio, regional_max_consecutive_failures to CheckpointConfigInfo
- Wire data channel: OperatorSubtaskState.refCheckpointId -> SubtaskStateStats -> TaskStateStats -> CheckpointStatistics
- Regenerate REST API snapshot

Generated-by: CodeBuddy Code (GLM-5.2)
- Display Regional Checkpoint configuration in checkpoint config page
- Display ref_checkpoint_id per subtask in checkpoint detail page
- Add oldest_ref_checkpoint_id column in checkpoint statistics

Generated-by: CodeBuddy Code (GLM-5.2)
- Document configuration options, prerequisites, and limitations
- Document notifyRegionalCheckpointComplete and notifyRegionalCheckpointFallback APIs
- Document two-tier max-consecutive-failures semantics (Tier 1 + Tier 2)
- Document Per-Region timeout handling
- Document bounded source forced global checkpoint behavior
- Document metric (regional_checkpoint_count) and REST API fields
- Document checkpoint cleanup with reference chain protection

Generated-by: CodeBuddy Code (GLM-5.2)
@flinkbot

flinkbot commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

@spuru9

spuru9 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Can you move the PR in the stack to draft till the foremost PRs in the stack are merged. As the title suggest its a doc PR. Could cause confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants