[
https://issues.apache.org/jira/browse/IGNITE-27703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladimir Pligin updated IGNITE-27703:
-------------------------------------
Priority: Critical (was: Major)
> Reconsider the necessity of waiting for cluster time during assignments
> waiting
> -------------------------------------------------------------------------------
>
> Key: IGNITE-27703
> URL: https://issues.apache.org/jira/browse/IGNITE-27703
> Project: Ignite
> Issue Type: Improvement
> Reporter: Denis Chudov
> Assignee: Denis Chudov
> Priority: Critical
> Labels: ignite-3
>
> Cluster time is passed to [1] and the method waits for cluster time here to
> make sure we have the most recent stable assignments locally according to
> timestamp that is provided.
> Consider this:
> t1: stable assignments are [A,B,C], pending are [B,C,D]
> t2: transaction time
> t3: rebalancing finished, stables are now [B,C,D]
> t4: you are on node E, local info about stables is still [A,B,C], you don't
> wait for cluster time and you get assignments: [A,B,C], do request to A.
> Node A already stopped replica, you may wait for replica start future and
> finally fail with AwaitReplicaTimeoutException which is
> RetriableTransactionException.
> In general, it seems there is no difference with late request to A. So there
> is no necessity to wait for cluster time if we have proper failovers for
> RetriableTransactionException.
> Also, AwaitReplicaException may be thrown fast if replica is absent in stable
> assignments.
> [1] AssignmentsPlacementDriver#awaitNonEmptyAssignments
--
This message was sent by Atlassian Jira
(v8.20.10#820010)