[
https://issues.apache.org/jira/browse/IGNITE-24365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-24365:
-------------------------------------
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.
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.
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.
** And in order to
> Implement UpdateMinimumActiveTxBeginTimeReplicaRequest processing for zone
> replica
> ----------------------------------------------------------------------------------
>
> Key: IGNITE-24365
> URL: https://issues.apache.org/jira/browse/IGNITE-24365
> 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.
> 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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)