[ 
https://issues.apache.org/jira/browse/IGNITE-21070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17800976#comment-17800976
 ] 

 Kirill Sizov commented on IGNITE-21070:
----------------------------------------

The following places need to be covered with tests :
1. A commit is turned into a rollback if one of the primaries is expired 
(verifyCommitTimestamp)
2. If commit timestamp > replica expiration time, the commit is turned into a 
rollback.
3. verifyCommitTimestamp's verificationFuture changes the exception thrown from 
finish.
4. durableFinish awaits only commit partition primary, others might expire by 
that time. Should be safe to finish such transaction.
5. PrimaryReplicaMiss for finish request on the server side, durableFinish 
should help.
6. PartitionReplicaListener.validateCommit changes tx outcome. *Need to return 
an exception in the result and cover it with tests.*
8. Cleanup uses getPrimaryReplica to send a CleanupRequest, if no primary found 
we switch to awaitPrimaryReplica+switchWriteIntentsWithRetry - need tests for 
that.

> Ensure that data node's primary replica expiration properly handled
> -------------------------------------------------------------------
>
>                 Key: IGNITE-21070
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21070
>             Project: Ignite
>          Issue Type: New Feature
>            Reporter: Alexander Lapin
>            Assignee:  Kirill Sizov
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> Corresponding primary replica expiration logic should already be implemented, 
> mainly within coordinator recovery thus within a given ticket it's only 
> required to extend test coverage. Primary replica expiration handling logic 
> differs whether expiration itself occurred before or after following flow 
> splitters:
>  * Replication finishing. (Inflights == 0)
>  * Commit timestamp evolution. // Not sure actually, maybe there's no 
> difference between replication finishing and commit timestamp evolution 
> splitters.
>  * Finish request handling.
>  * Cleanup request handling.
>  * WriteIntent switch request handling.
> Specific test scenarious will be specified during ticket implementation.



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

Reply via email to