You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Mikhail Efremov (Jira)" <ji...@apache.org> on 2025/03/06 08:42:00 UTC

[jira] [Updated] (IGNITE-22620) Implement ReplicaSafeTimeSyncRequest processing for zone replica

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

Mikhail Efremov updated IGNITE-22620:
-------------------------------------
    Fix Version/s: 3.1

> 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
>             Fix For: 3.1
>
>          Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> 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)