You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Andrew Kyle Purtell (Jira)" <ji...@apache.org> on 2026/10/09 21:17:00 UTC

[jira] [Updated] (PHOENIX-7938) Fix consistency point calculation for sync replication replay when files within a round are processed out of order

     [ https://issues.apache.org/jira/browse/PHOENIX-7938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Kyle Purtell updated PHOENIX-7938:
-----------------------------------------
    Fix Version/s: PHOENIX-7562-feature
                   5.4.0

> Fix consistency point calculation for sync replication replay when files within a round are processed out of order
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-7938
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7938
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Himanshu Gwalani
>            Assignee: Himanshu Gwalani
>            Priority: Major
>             Fix For: PHOENIX-7562-feature, 5.4.0
>
>
> *Background*
> In Replication Replay Design, when replication is in _sync_ mode, the consistency point is currently computed as the _minimum timestamp of all files in the_ _IN-PROGRESS directory_ (when non-empty).
> *Issue*
> {*}{*}Files within a round are picked randomly and moved to IN-PROGRESS. A file with a later creation timestamp can be moved to IN-PROGRESS before an older file from the same round still sitting in the IN directory. This causes the consistency point to advance past data that has not yet been replayed.
> *Example*
> {*}{*}Round N contains:
> File A — timestamp T+5
> File B — timestamp T+30
> RS-1 picks file B first and renames it to IN-PROGRESS. File A is still in the IN directory. IN-PROGRESS has no files from previous rounds.
> IN directory: file A (T+5) — not yet replayed
> IN-PROGRESS: file B (T+30) — being replayed
> Current logic yields consistency point = (T+30) − 1. The correct value should be (T+5) − 1.
> *Proposed* *Fix*
> **Consistency points should align to round start times. After computing the minimum timestamp across IN-PROGRESS files, adjust it to the start time of the round that the minimum timestamp belongs to. This avoids listing all IN directories while still preventing the consistency point from advancing past unreplayed files.



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