You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Chudov (Jira)" <ji...@apache.org> on 2026/01/29 14:01:00 UTC

[jira] [Created] (IGNITE-27703) Reconsider the necessity of waiting for cluster time during assignments waiting

Denis Chudov created IGNITE-27703:
-------------------------------------

             Summary: 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


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)