[ https://issues.apache.org/jira/browse/IGNITE-22621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy updated IGNITE-22621: --------------------------------------- Description: h3. Motivation Few words about general context. Tx Finish flow is a crucial step in AI3 Tx Protocol. Generally it consists of two phases along with some prerequisites. 0. Prerequisites: schema validation, tx state check. 1. Txn state switch phase. Atomic transaction commit/rollback implemented through replicating persistent txn state(COMMITTED/ABORTED) to commitPartition. Once it's done, transaction is considered as finished. 2. Cleanup phase. Releasing locks, converting writeIntents to common values or removing them depending on whether it's commit or abort. h3. !Screenshot 2025-01-29 at 10.29.28 AM.png! Definition of Done * Move processing TxFinishReplicaRequest from PartitionReplicaListener#processTxFinishAction to ZonePartitionReplicaListener#processTxFinishAction by introducing corresponding method. In order to do that, it's required to add some dependencies to ZonePartitionRaftListener: * ** SchemaCompatibilityValidator ** TxStateStorage // Adding the storage isn't trivial. ** TxManager ** RaftCommandRunner // In order to run TxFinishCommand was: h3. Motivation Few words about general context. Tx Finish flow is a crucial step in AI3 Tx Protocol. Generally it consists of two phases along with some prerequisites. 0. Prerequisites: schema validation, tx state check. 1. Txn state switch phase. Atomic transaction commit/rollback implemented through replicating persistent txn state(COMMITTED/ABORTED) to commitPartition. Once it's done, transaction is considered as finished. 2. Cleanup phase. Releasing locks, converting writeIntents to common values or removing them depending on whether it's commit or abort. h3. !Screenshot 2025-01-29 at 10.29.28 AM.png! Definition of Done * Move processing TxFinishReplicaRequest from PartitionReplicaListener#processTxFinishAction to ZonePartitionRaftListener#processTxFinishAction by introducing corresponding method. In order to do that, it's required to add some dependencies to ZonePartitionRaftListener: * ** SchemaCompatibilityValidator ** TxStateStorage // Adding the storage isn't trivial. ** TxManager ** RaftCommandRunner // In order to run TxFinishCommand > Implement transaction storage for the zone replica listener > ----------------------------------------------------------- > > Key: IGNITE-22621 > URL: https://issues.apache.org/jira/browse/IGNITE-22621 > Project: Ignite > Issue Type: Improvement > Reporter: Kirill Gusakov > Assignee: Roman Puchkovskiy > Priority: Major > Labels: ignite-3 > Attachments: Screenshot 2025-01-29 at 10.29.28 AM.png > > > h3. Motivation > Few words about general context. Tx Finish flow is a crucial step in AI3 Tx > Protocol. Generally it consists of two phases along with some prerequisites. > 0. Prerequisites: schema validation, tx state check. > 1. Txn state switch phase. Atomic transaction commit/rollback implemented > through replicating persistent txn state(COMMITTED/ABORTED) to > commitPartition. Once it's done, transaction is considered as finished. > 2. Cleanup phase. Releasing locks, converting writeIntents to common values > or removing them depending on whether it's commit or abort. > h3. !Screenshot 2025-01-29 at 10.29.28 AM.png! Definition of Done > * Move processing TxFinishReplicaRequest from > PartitionReplicaListener#processTxFinishAction to > ZonePartitionReplicaListener#processTxFinishAction by introducing > corresponding method. In order to do that, it's required to add some > dependencies to ZonePartitionRaftListener: > * > ** SchemaCompatibilityValidator > ** TxStateStorage // Adding the storage isn't trivial. > ** TxManager > ** RaftCommandRunner // In order to run TxFinishCommand -- This message was sent by Atlassian Jira (v8.20.10#820010)