[ https://issues.apache.org/jira/browse/IGNITE-24363?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Lapin updated IGNITE-24363: ------------------------------------- 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. TxCleanupRecoveryRequest 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 primary replica election works properly. h3. Implementation Notes * Initial source for groupId to recover is PRIMARY_REPLICA_ELECTED See TxManagerImpl#primaryReplicaElectedListener for more details. Thus, besides ensuring that corresponding event is fired in case of zone primary replica (meaning checking that TestPlacementDriver does fire such event) it's also required to properly convert TablePartitionId to ZonePartitionId like we did previously in similar tickets. {code:java} .groupId(toTablePartitionIdMessage(REPLICA_MESSAGES_FACTORY, tablePartitionId)){code} * Copy PartitionReplicaListener#processCleanupRecoveryMessage along with corresponding trigger to ZonePartitionReplicaListener. * Hide original PartitionReplicaListener#processCleanupRecoveryMessage under colocation feature flag. * Implement corresponding smoke test to ensure that transaction recovery works properly. 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. TxCleanupRecoveryRequest 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-24361|https://issues.apache.org/jira/browse/IGNITE-24361] (and all dependencies of course) are implemented transaction recovery should be available within colocation track. h3. Implementation Notes * Initial source for groupId to recover is PRIMARY_REPLICA_ELECTED See TxManagerImpl#primaryReplicaElectedListener for more details. Thus, besides ensuring that corresponding event is fired in case of zone primary replica (meaning checking that TestPlacementDriver does fire such event) it's also required to properly convert TablePartitionId to ZonePartitionId like we did previously in similar tickets. {code:java} .groupId(toTablePartitionIdMessage(REPLICA_MESSAGES_FACTORY, tablePartitionId)){code} * Copy PartitionReplicaListener#processCleanupRecoveryMessage along with corresponding trigger to ZonePartitionReplicaListener. * Hide original PartitionReplicaListener#processCleanupRecoveryMessage under colocation feature flag. * Implement corresponding smoke test to ensure that transaction recovery works properly. > Implement TxCleanupRecoveryRequest processing for zone replica > -------------------------------------------------------------- > > Key: IGNITE-24363 > URL: https://issues.apache.org/jira/browse/IGNITE-24363 > 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. > TxCleanupRecoveryRequest 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 primary replica election works properly. > h3. Implementation Notes > * Initial source for groupId to recover is PRIMARY_REPLICA_ELECTED See > TxManagerImpl#primaryReplicaElectedListener for more details. Thus, besides > ensuring that corresponding event is fired in case of zone primary replica > (meaning checking that TestPlacementDriver does fire such event) it's also > required to properly convert TablePartitionId to ZonePartitionId like we did > previously in similar tickets. > {code:java} > .groupId(toTablePartitionIdMessage(REPLICA_MESSAGES_FACTORY, > tablePartitionId)){code} > * Copy PartitionReplicaListener#processCleanupRecoveryMessage along with > corresponding trigger to ZonePartitionReplicaListener. > * Hide original PartitionReplicaListener#processCleanupRecoveryMessage 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)