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

Alexander Lapin reassigned IGNITE-22620:
----------------------------------------

    Assignee: Mikhail Efremov  (was: Slava Koptilin)

> Implement ReplicaSafeTimeSyncRequest processing for zone replica
> ----------------------------------------------------------------
>
>                 Key: IGNITE-22620
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22620
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Gusakov
>            Assignee: Mikhail Efremov
>            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.
> 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