You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Lapin (Jira)" <ji...@apache.org> on 2024/02/14 07:25:00 UTC

[jira] [Updated] (IGNITE-20826) Restore last observable ordered timestamp on restart

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

Alexander Lapin updated IGNITE-20826:
-------------------------------------
    Reviewer: Ivan Bessonov

> Restore last observable ordered timestamp on restart
> ----------------------------------------------------
>
>                 Key: IGNITE-20826
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20826
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexander Lapin
>            Assignee: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> h3. Motivation
> In order to guarantee that there's no safe time reordering within the very first command after node restart, it's required either to restore the last observable ordered safe time on restart or guarantee that it'll be ordered because of some external invariants.
> h3. Definition of Done
> It is possible to check whether safeTime proposed after partition listener restart is ordered with previously observed value.
> h3. Implementation notes
> One of the options is to guarantee that any proposed safe time is less than primaryReplica.expirationTime. Along with selection of a new primary on restart (with newPrimary.startTime > oldPrimaryStartTime) it'll be enough to force the invariant specified in DoD. However, it's not trivial to handle proposedSafeTime out of bounds condition.
> Another option is to retrieve safe time from either raft log or snapshot.
>  
> And last but not least - it's also required to restore last observable ordered timestamp on partition listener re-creation in case of rebalance.
> h3. Upd#1
> It's required to initialize `maxObservableSafeTime` not only within node start but with leader election, actually only within leader election.
>  



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