tkhurana opened a new pull request, #2648: URL: https://github.com/apache/phoenix/pull/2648
A PARALLEL HA group does not need the replication log: the client writes both clusters itself. ReplicationLogGroup.get() now always returns a group whose Status tells the caller what to do: REPLICATING (live writer), SKIP (no replication log), or NOT_ACTIVE (FAILOVER group on a non-active cluster). - A PARALLEL group gets a cached NoOpReplicationLogGroup on either role, so it never builds a writer (no peer-FS files, rotation, mode flips or abort exposure), including at RS startup eager init, and later batches do not re-read the HA group store. The policy is checked before the role. - NOT_ACTIVE is a shared instance that is never cached, so the first get() after promotion builds the writer. Non-replicated writes use the shared NONE. - getOrCreate checks INSTANCES before computeIfAbsent. - IndexRegionObserver ships only when the group isReplicated(), throws split-brain on NOT_ACTIVE, and drops isParallelPolicy. preWALRestore skips any non-replicating group, which covers PARALLEL edits stamped before this change. Also close ReplicationLog when init() fails to create the first writer, so a failed init() no longer leaves an orphaned rotation thread or staged writer. Supersedes #2638; its IndexRegionObserver unit tests and PARALLEL IT case are carried over. Generated-by: Claude Code (Opus 5.5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
