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

Tanuj Khurana resolved PHOENIX-8005.
------------------------------------
    Resolution: Fixed

> Make scheduled round-boundary rotation non-coalescible in the replication log
> -----------------------------------------------------------------------------
>
>                 Key: PHOENIX-8005
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-8005
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Tanuj Khurana
>            Assignee: Tanuj Khurana
>            Priority: Major
>
> ReplicationLog rotates the active .plog writer on two independent triggers 
> that share a single rotationRequested CAS gate:
> - Size/fault-based (requestRotationIfOversized, the apply() retry path): an 
> idempotent intent — "ensure a fresh, non-oversized writer exists." Coalescing 
> these is correct and necessary: size checks fire after every sync, and during 
> the window between requesting a rotation and the new writer being staged 
> currentWriter still reports the old over-threshold length, so uncoalesced 
> requests would cascade into many tiny files.
>   - Time-based (the scheduleAtFixedRate tick): a non-idempotent intent — 
> "this specific round boundary must get its own file," which is the placement 
> unit the round-sharded reader is organized around.
> Problem
> Because both triggers share one CAS gate, a scheduled boundary tick that 
> fires while a size/fault rotation already holds the gate is coalesced away 
> (dropped), so that round boundary may not get its own file. The fix would 
> guarantee a new log file is created on every rotation tick 



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

Reply via email to