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

Alexander Lapin updated IGNITE-24360:
-------------------------------------
    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 TxStateCommitPartitionRequest is expected to be moved.

A bit of a context: ReplicaSafeTimeSyncRequest is used in order to move safe 
time on partition if there's no load, meaning in idle case.
h3. Definition of Done
 * Safe time on zone partition is adjusted on idle cluster.

h3. Implementation Notes
 * Add clockService to ZonePartitionReplicaListener.
 * Copy PartitionReplicaListener#processReplicaSafeTimeSyncRequest along with 
corresponding trigger to  ZonePartitionReplicaListener.
 * Hide originalPartitionReplicaListener#processReplicaSafeTimeSyncRequest 
under colocation feature flag.
 * Copy PartitionListener#handleSafeTimeSyncCommand to 
ZonePartitionRaftListener. I guess that it's the most tricky part here, because 
we will need to advance safeTime and index consistently in _all_ data storages 
(meaning for all tables) of a zone.
 ** I believe that we may change advanceLastAppliedIndexConsistently from 
private to  public __ and call it for all tableProcessors that we have in 
ZonePartitionReplicaListener for specific zone.
 ** Besides that we may move 'if (commandIndex <= storage.lastAppliedIndex())' 
from handleSafeTimeSyncCommand to advanceLastAppliedIndexConsistently.
 * Add corresponding test.

> Implement TxStateCommitPartitionRequest processing for zone replica
> -------------------------------------------------------------------
>
>                 Key: IGNITE-24360
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24360
>             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 TxStateCommitPartitionRequest is expected to be moved.
> A bit of a context: ReplicaSafeTimeSyncRequest is used in order to move safe 
> time on partition if there's no load, meaning in idle case.
> h3. Definition of Done
>  * Safe time on zone partition is adjusted on idle cluster.
> h3. Implementation Notes
>  * Add clockService to ZonePartitionReplicaListener.
>  * Copy PartitionReplicaListener#processReplicaSafeTimeSyncRequest along with 
> corresponding trigger to  ZonePartitionReplicaListener.
>  * Hide originalPartitionReplicaListener#processReplicaSafeTimeSyncRequest 
> under colocation feature flag.
>  * Copy PartitionListener#handleSafeTimeSyncCommand to 
> ZonePartitionRaftListener. I guess that it's the most tricky part here, 
> because we will need to advance safeTime and index consistently in _all_ data 
> storages (meaning for all tables) of a zone.
>  ** I believe that we may change advanceLastAppliedIndexConsistently from 
> private to  public __ and call it for all tableProcessors that we have in 
> ZonePartitionReplicaListener for specific zone.
>  ** Besides that we may move 'if (commandIndex <= 
> storage.lastAppliedIndex())' from handleSafeTimeSyncCommand to 
> advanceLastAppliedIndexConsistently.
>  * Add corresponding test.



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

Reply via email to