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

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

Within colocation track we should reasonably move table-not-specific requests 
and commands processing from PartitionReplicaListener and PartitionListener to 
ZonePartitionReplicaListener and ZonePartitionRaftListener. 
ReplicaSafeTimeSyncRequest is one of such requests to be moved. In this 
particular case TxRecoveryMessage is expected to be moved.
h3. Definition of Done
 * After both given ticket and 
[IGNITE-24363|https://issues.apache.org/jira/browse/IGNITE-24363]

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.
 * I don't expect any tests here, since it given ticket is a part of Tx 
recovery that should be checked when fully moved to zones.

  was:
h3. Motivation

Within colocation track we should reasonably move table-not-specific requests 
and commands processing from PartitionReplicaListener and PartitionListener to 
ZonePartitionReplicaListener and ZonePartitionRaftListener. 
ReplicaSafeTimeSyncRequest is one of such requests to be moved. In this 
particular case TxRecoveryMessage is expected to be moved.
h3. Definition of Done
 * <alapin TBD>::"define dependency with TxCleanupRecoveryRequest" It's 
possible to resolve transaction state from the zone's commit partition. 

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.
 * I don't expect any tests here, since it given ticket is a part of Tx 
recovery that should be checked when fully moved to zones.


> 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
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> Within colocation track we should reasonably move table-not-specific requests 
> and commands processing from PartitionReplicaListener and PartitionListener 
> to ZonePartitionReplicaListener and ZonePartitionRaftListener. 
> ReplicaSafeTimeSyncRequest is one of such requests to be moved. In this 
> particular case TxRecoveryMessage is expected to be moved.
> h3. Definition of Done
>  * After both given ticket and 
> [IGNITE-24363|https://issues.apache.org/jira/browse/IGNITE-24363]
> 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.
>  * I don't expect any tests here, since it given ticket is a part of Tx 
> recovery that should be checked when fully moved to zones.



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

Reply via email to