[
https://issues.apache.org/jira/browse/IGNITE-19990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-19990:
-----------------------------------------
Labels: ignite-3 (was: )
> Replication command timestamps
> ------------------------------
>
> Key: IGNITE-19990
> URL: https://issues.apache.org/jira/browse/IGNITE-19990
> Project: Ignite
> Issue Type: Improvement
> Reporter: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
>
> *Motivation*
> Replication command send and success timestamps are supposed to be cached in
> the primary replica. These timestamps are used to choose which method the
> safe time propagetion is supposed.
> *Implementation notes*
> * When the node becomes a primary replica for any partition, it initiates
> {{sendTimestamp = null}} and {{successTimestmp=0}}.
> * Store the latest timestamp of sending commands in {{sendTimestamp}}.
> * Store the latest timestamp of successfully executed commands in
> {{successTimestmp}}.
> * The updet of both timestamps is supposed to be atomic:
> {code}
> public boolean setIfGreater(AtomicLong sentTime, long ts) {
> return sentTime.updateAndGet(x -> x < ts ? ts : x) == ts;
> }
> {code}
> *Disinition of done*
> If a primary replica has not applied any operations, {{sendTimestamp}} is
> {{null}}. Otherwise, in an arbitrary moment, {{sendTimestamp}} has to be
> greater than or equivalent to {{successTimestmp}} or it is {{null}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)