Lokesh Khurana created PHOENIX-7907:
---------------------------------------
Summary: Cutover lifecycle with PENDING_PARTIAL_PASS state,
UCF-wait, and link removal at cutover commit
Key: PHOENIX-7907
URL: https://issues.apache.org/jira/browse/PHOENIX-7907
Project: Phoenix
Issue Type: Sub-task
Reporter: Lokesh Khurana
The current cutover flow ({{{}Transform.doCutover{}}} → schedule partial-pass
immediately) runs partial-pass concurrently with stale-cache dual-write
traffic, allowing stranded UNVERIFIED rows. The fix introduces a new
{{PENDING_PARTIAL_PASS}} status between {{PENDING_CUTOVER}} and partial-pass
scheduling, where the monitor waits a UCF-derived window before transitioning
forward. Link removal happens AT cutover commit (Order B), so a single cache
cycle propagates both the PHYSICAL_TABLE_NAME swap and the link-removal.
*State machine:*
{{PENDING_CUTOVER}} → {{Transform.doCutover}} (single SYSCAT commit: swap
PHYSICAL_TABLE_NAME on logical row + each view, DELETE TRANSFORMING_NEW_TABLE
link rows, clearCache RPC) → status flips to {{PENDING_PARTIAL_PASS}} with
{{PENDING_PARTIAL_PASS_UNTIL_TS = now + max(UCF * 1.10, 30 min)}} → wall-clock
until UNTIL_TS → status flips to {{PARTIAL_PASS_RUNNING}} → TransformTool
partial-pass MR scans NEW for UNVERIFIED rows.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)