[ 
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)

Reply via email to