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

   ## What is the purpose of the change
   
   Part 1 of a 7-PR series implementing FLINK-38544 (checkpointing during 
recovery of unaligned-checkpoint state). Series: FLINK-39520 → FLINK-39521 → 
FLINK-39522 → FLINK-39523 → FLINK-39524 → FLINK-40080 → FLINK-40081.
   
   This PR is pure refactoring in preparation for the reworked channel-state 
recovery: it splits the monolithic recovered-state handler into an abstract 
base with concrete no-filtering/filtering handlers, adds 
`InputGate#getChannel(InputChannelInfo)`, and carries one standalone `[hotfix]` 
commit fixing a busy-spin in the multiple-input processor. No behavior or 
semantic change.
   
   ## Brief change log
   
   - `[hotfix]` `StreamMultipleInputProcessor` returns `END_OF_INPUT` when all 
inputs are finished instead of busy-spinning (previously, once all inputs 
finished, the availability future was complete but `processInput` never 
reported end of input)
   - Decouple `LocalInputChannel` recovery wiring from `toBeConsumedBuffers`
   - Split `InputChannelRecoveredStateHandler` into 
`AbstractInputChannelRecoveredStateHandler` (channel-mapping state and logic, 
extracted verbatim) + `NoSpillingHandler` / `FilteringHandler` (the two 
existing behaviors, extracted verbatim), selected by a static `create(...)` 
factory equivalent to the old internal branch; 
`ResultSubpartitionRecoveredStateHandler` is untouched
   - Add `InputGate#getChannel(InputChannelInfo)` (`UnionInputGate` resolves 
via the gate index, fixing global-vs-member index semantics); 
`AbstractStreamTaskNetworkInput` switches to it
   - Additive `NetworkActionsLogger#tracePersist` overload; widen 
`RecoveredInputChannel#releaseAllResources` to `public`
   
   ## Verifying this change
   
   This change is a refactoring already covered by existing tests 
(`InputChannelRecoveredStateHandlerTest`, `RecoveredChannelStateHandlerTest`, 
the input-channel and gate test suites); they pass unmodified except mechanical 
adaptations (a renamed trace label, constructor plumbing in test builders).
   
   ## 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: yes 
(checkpoint-recovery code paths are refactored; no behavior change intended)
     - The S3 file system connector: no
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no
     - If yes, how is the feature documented? not applicable
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes (please specify the tool below)
   
   Generated-by: Claude Code (Claude Fable 5)
   


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