[
https://issues.apache.org/jira/browse/IGNITE-24361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-24361:
---------------------------------------
Reviewer: Mikhail Efremov
> Implement TxRecoveryMessage processing for zone replica
> -------------------------------------------------------
>
> Key: IGNITE-24361
> URL: https://issues.apache.org/jira/browse/IGNITE-24361
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Assignee: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> h3. Motivation
> Within colocation track we should reasonably move table-not-specific requests
> and commands processing from PartitionReplicaListener and PartitionListener
> to ZonePartitionReplicaListener and ZonePartitionRaftListener.
> TxRecoveryMessage is one of such requests to be moved. In this particular
> case TxRecoveryMessage is expected to be moved.
> h3. Definition of Done
> * Transaction recovery triggered by abandoned tx touch works properly.
> h3. Implementation Notes
> * As for OrphanDetector#sendTxRecoveryMessage we will have zoneId instead of
> tableId because it's retrieved from WI.commitPartitionId.
> SeeOrphanDetector#checkTxOrphanedInternal for more details.
> {code:java}
> partitionOperationsExecutor.execute(() ->
> sendTxRecoveryMessage(txState.commitPartitionId(), txId));{code}
> However we will need to use proper request to message conversion. Please pay
> attention to toTablePartitionIdMessage.
> {code:java}
> .groupId(toTablePartitionIdMessage(REPLICA_MESSAGES_FACTORY,
> cmpPartGrp)){code}
> * Copy PartitionReplicaListener#processTxRecoveryMessage along with
> corresponding trigger to ZonePartitionReplicaListener.
> * Hide original PartitionReplicaListener#processTxRecoveryMessage under
> colocation feature flag.
> * Implement corresponding smoke test to ensure that transaction recovery
> works properly.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)