[
https://issues.apache.org/jira/browse/PHOENIX-7938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Himanshu Gwalani resolved PHOENIX-7938.
---------------------------------------
Resolution: Fixed
> 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)