Rui Fan created FLINK-40081:
-------------------------------

             Summary: Enable the spilling backend for checkpointing during 
recovery
                 Key: FLINK-40081
                 URL: https://issues.apache.org/jira/browse/FLINK-40081
             Project: Flink
          Issue Type: Sub-task
          Components: Runtime / Checkpointing
            Reporter: Rui Fan
            Assignee: Rui Fan


Swap the memory backend for the disk backend behind 
execution.checkpointing.during-recovery.enabled: recovered channel state is 
fetched (and rescale-filtered) into spill files, the drainer pushes it into the 
recovery-state channels while serving as the recovery-checkpoint trigger, and 
checkpoints taken during recovery snapshot the not-yet-drained slice.

Scope:
 * Handler factory returns the spilling handlers when the flag is on; the v1 
in-memory filtering path is deleted.
 * StreamTask flag-on recovery becomes fetch → requestPartitions → 
build/install drainer → drain → NO_OP; the transitional in-memory trigger and 
conversion-time push are deleted.
 * The unbounded heap fallback in RecoveredInputChannel#requestBufferBlocking 
is removed — spilling supersedes it, eliminating the OOM risk of the memory 
backend.
 * RecordFilterContext hardened for minimal and batch environments (spill tmp 
directories enforced only when the flag is on).
 * IT cases: unaligned checkpoint during recovery, rescale-filter large-record 
OOM regression, non-source recovery race smoke test.

The randomized ITCase fleet (which runs the flag in ~50% of runs) must stay 
green across the backend swap — the acceptance bar for spilling being a drop-in 
replacement of the memory backend.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to