1996fanrui opened a new pull request, #28662:
URL: https://github.com/apache/flink/pull/28662

   This PR depends on https://github.com/apache/flink/pull/28651, 
https://github.com/apache/flink/pull/28652, 
https://github.com/apache/flink/pull/28659, 
https://github.com/apache/flink/pull/28660 and 
https://github.com/apache/flink/pull/28661
   
   Please only review the last 4 commits (prefixed [FLINK-40080]).
   
   ## What is the purpose of the change
   
   [FLINK-40080] Drain spilled state into channels; replay spilled slices into 
checkpoints.
   
   It's part 6 of FLINK-38544 (checkpointing during recovery of unaligned 
checkpoint state) — the disk-side counterpart of the recovery-checkpoint 
coordination. The trigger contract is widened so checkpoint start atomically 
snapshots the not-yet-drained spill slice, the channel-state writer learns to 
replay such a slice into a checkpoint (`addInputDataFromSpill` / 
`writeInputFromSpill`), the barrier-handler dispatch gains the reader-handover 
step, and the incremental `FetchedChannelStateDrainer` lands. Runtime behavior 
is unchanged — no production path constructs a drainer, and the handler factory 
does not select the spilling handlers.
   
   ## Brief change log
   
   - [FLINK-40080][checkpoint] Widen 
RecoveryCheckpointTrigger#snapshotAndInsertBarriers to return a state reader
   - [FLINK-40080][checkpoint] ChannelStateWriter#addInputDataFromSpill: replay 
spilled segments into the checkpoint
   - [FLINK-40080][checkpoint] ChannelState step 3: hand the snapshot reader to 
the writer
   - [FLINK-40080][checkpoint] FetchedChannelStateDrainer: incremental drain 
with atomic snapshot-and-insert
   
   ## Verifying this change
   
   - New unit tests: FetchedChannelStateDrainerTest, 
FetchedChannelStateDrainerConcurrencyTest, 
ChannelStateWriterImplAddInputDataFromSpillTest, ChannelStateDispatcherTest 
(extended to the full 3-step dispatch)
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): no
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: no
     - The serializers: no
     - The runtime per-record code paths (performance sensitive): no
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
     - The S3 file system connector: no
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no
   


-- 
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]

Reply via email to