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

Denis Chudov updated IGNITE-21325:
----------------------------------
    Description: 
*Motivation*

No processing of any transactional request should be started when the event 
processing of {{{}PRIMARY_REPLICA_EXPIRED event {{is in progress. The reason is 
that such requests may try to acquire transactional locks on the current 
primary replica, and the locks acquired during the previous lease are released 
by the listener of}} PRIMARY_REPLICA_EXPIRED event. The validity of the current 
primary is checked in PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
{{PRIMARY_REPLICA_EXPIRED event. The future returned by 
PlacementDriver#previousPrimaryExpired}} can be used for this.

*Definition of done*

The processing of transactional requests for the current primary replica can't 
be started before the processing of \{{PRIMARY_REPLICA_EXPIRED }}event finishes.

  was:
*Motivation*

No processing of any transactional request should be started when the event 
processing of {{PRIMARY_REPLICA_EXPIRED }}event is in progress. The reason is 
that such requests may try to acquire transactional locks on the current 
primary replica, and the locks acquired during the previous lease are released 
by the listener of {{PRIMARY_REPLICA_EXPIRED }}event. The validity of the 
current primary is checked in 
{{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.

We must ensure that this method is called after the processing of 
{{PRIMARY_REPLICA_EXPIRED }}event. The future returned by 
{{PlacementDriver#previousPrimaryExpired}} can be used for this.

*Definition of done*

The processing of transactional requests for the current primary replica can't 
be started before the processing of {{PRIMARY_REPLICA_EXPIRED }}event finishes.


> Hold the transactional requests processing while the primary expired event 
> processing is in progress
> ----------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-21325
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21325
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> *Motivation*
> No processing of any transactional request should be started when the event 
> processing of {{{}PRIMARY_REPLICA_EXPIRED event {{is in progress. The reason 
> is that such requests may try to acquire transactional locks on the current 
> primary replica, and the locks acquired during the previous lease are 
> released by the listener of}} PRIMARY_REPLICA_EXPIRED event. The validity of 
> the current primary is checked in 
> PartitionReplicaListener#ensureReplicaIsPrimary{}}}.
> We must ensure that this method is called after the processing of 
> {{PRIMARY_REPLICA_EXPIRED event. The future returned by 
> PlacementDriver#previousPrimaryExpired}} can be used for this.
> *Definition of done*
> The processing of transactional requests for the current primary replica 
> can't be started before the processing of \{{PRIMARY_REPLICA_EXPIRED }}event 
> finishes.



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

Reply via email to