Vladislav Pyatkov created IGNITE-21213:
------------------------------------------
Summary: 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
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. 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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)