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

Alexander Lapin updated IGNITE-24366:
-------------------------------------
    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. 
VacuumTxStateReplicaRequest is one of such requests to be moved.
A bit of a context: VacuumTxStateReplicaRequest is used in order remove 
obsolete txn state.
h3. Definition of Done
 * Transaction vacuumization works within collocation track.

h3. Implementation Notes
 * It's required to move(copy + hide under the feature flag original processor) 
request processor PartitionReplicaListener#processVacuumTxStateReplicaRequest 
to ZonePartitionReplicaListener
 * Same for corresponding raft command handler, where we will remove stale data 
from txnStateStorage.

  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. 
UpdateMinimumActiveTxBeginTimeReplicaRequest is one of such requests to be 
moved.
A bit of a context: UpdateMinimumActiveTxBeginTimeReplicaRequest is used in 
order to adjust the time of safe catalog compaction.
h3. Definition of Done
 * Catalog compaction works within colocation track.

h3. Implementation Notes
 * This ticket is similar to https://issues.apache.org/jira/browse/IGNITE-22620:
 ** It's required to move(copy + hide under the feature flag original 
processor) request processor 
PartitionReplicaListener#processMinimumActiveTxTimeReplicaRequest to 
ZonePartitionReplicaListener
 ** Same for corresponding raft command handler, where we will likely call raft 
table listeners in order to register a callback on storage flush 
{code:java}
storage.flush(false).whenComplete((r, t) -> {
    if (t == null) {
        TablePartitionId partitionId = new TablePartitionId(storage.tableId(), 
storage.partitionId());
        minTimeCollectorService.recordMinActiveTxTimestamp(partitionId, 
timestamp);
    }
}); {code}
if command index is greater than one in the storage. In order to do so, we may 
introduce corresponding public method in table raft listener, aka table raft 
processor.


> Implement VacuumTxStateReplicaRequest processing for zone replica
> -----------------------------------------------------------------
>
>                 Key: IGNITE-24366
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24366
>             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. 
> VacuumTxStateReplicaRequest is one of such requests to be moved.
> A bit of a context: VacuumTxStateReplicaRequest is used in order remove 
> obsolete txn state.
> h3. Definition of Done
>  * Transaction vacuumization works within collocation track.
> h3. Implementation Notes
>  * It's required to move(copy + hide under the feature flag original 
> processor) request processor 
> PartitionReplicaListener#processVacuumTxStateReplicaRequest to 
> ZonePartitionReplicaListener
>  * Same for corresponding raft command handler, where we will remove stale 
> data from txnStateStorage.



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

Reply via email to