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

Vyacheslav Koptilin updated IGNITE-21213:
-----------------------------------------
    Epic Link: IGNITE-21174

> Coordination of mechanisms of determination for primary on replicaside
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-21213
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21213
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> In the replica listener, we have unconsidered mechanisms between each other 
> to determine primary rteplica. The first one is based on the placement driver 
> API (it is used in _PartitionReplicaListener#ensureReplicaIsPrimary_) and the 
> other one is based on the placement driver events (the events are hadeled by 
> two methods: _ReplicaManager#onPrimaryReplicaElected_, 
> _ReplicaManager#onPrimaryReplicaExpired_).
> Because the replica messages and events are handled in different threads, any 
> variety of processing is possible. For example, the replica can release all 
> transaction locks (by
> PRIMARY_REPLICA_EXPIRED event) and then handle a message for this transaction 
> (because ensureReplicaIsPrimary was done before), assuming that all the locks 
> are holding.
> h3. Definition of done
> The two mechanisms work in coordination.



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

Reply via email to