[
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)