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

Alexander Lapin updated IGNITE-20005:
-------------------------------------
    Description: 
h3. Motivation

It's possible that commit partition primary replica lease will expire in the 
following phases:
 * Before txnState change

 * During txnState change. Meaning that it's actually before or after, however 
we don't know an actual state before interaction.
 * After txnState change.

Last part is covered with https://issues.apache.org/jira/browse/IGNITE-20002 
and https://issues.apache.org/jira/browse/IGNITE-20004 So, given ticket is 
about lease expiration during first and second phases. In both cases it's 
required to send rollback that will change txnState to ABORTED if it wasn't 
already setted to terminal state previously and return actual terminal state. 
Meaning that it's possible to send rollback to a previously committed 
transaction, and that rollback won't have any effect, but will return COMMITED 
to the TxCoordinator and thus client.
h3. Definition of Done
 * It's required to verify that we properly handle commit partition primary 
replica expiration and commit partition primary replica failure by sending 
rollback request to the new commit partition primary.
 * It's required to slightly adjust 
org.apache.ignite.internal.tx.impl.TxManagerImpl#finish along with 
corresponding internals that will return actual txnState. Meaning that we 
should complete user's commit successfully if we send inner rollback after 
unnoticeable previous commit.

 

> Handle commitPartition primaryReplica lease expiration
> ------------------------------------------------------
>
>                 Key: IGNITE-20005
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20005
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3, transaction, transaction3_recovery
>
> h3. Motivation
> It's possible that commit partition primary replica lease will expire in the 
> following phases:
>  * Before txnState change
>  * During txnState change. Meaning that it's actually before or after, 
> however we don't know an actual state before interaction.
>  * After txnState change.
> Last part is covered with https://issues.apache.org/jira/browse/IGNITE-20002 
> and https://issues.apache.org/jira/browse/IGNITE-20004 So, given ticket is 
> about lease expiration during first and second phases. In both cases it's 
> required to send rollback that will change txnState to ABORTED if it wasn't 
> already setted to terminal state previously and return actual terminal state. 
> Meaning that it's possible to send rollback to a previously committed 
> transaction, and that rollback won't have any effect, but will return 
> COMMITED to the TxCoordinator and thus client.
> h3. Definition of Done
>  * It's required to verify that we properly handle commit partition primary 
> replica expiration and commit partition primary replica failure by sending 
> rollback request to the new commit partition primary.
>  * It's required to slightly adjust 
> org.apache.ignite.internal.tx.impl.TxManagerImpl#finish along with 
> corresponding internals that will return actual txnState. Meaning that we 
> should complete user's commit successfully if we send inner rollback after 
> unnoticeable previous commit.
>  



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

Reply via email to