[
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)