[ https://issues.apache.org/jira/browse/IGNITE-19887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladislav Pyatkov updated IGNITE-19887: --------------------------------------- Summary: Transfer observable timestamp to read-only transaction (was: Add internal API to pass read timestamp to read-only transaction) > Transfer observable timestamp to read-only transaction > ------------------------------------------------------ > > Key: IGNITE-19887 > URL: https://issues.apache.org/jira/browse/IGNITE-19887 > Project: Ignite > Issue Type: Improvement > Reporter: Vladislav Pyatkov > Priority: Major > Labels: ignite-3 > > *Motivation* > RO transaction has timestamp which determine a moment when data will be read. > To avoid waiting, safe time is supposed to provide the timestamp in the past. > The timestamp is determined by the latest observation timestamp and current > time in order to be available to retrieve all data which is locally viewed. > *Implementation notes* > * The latest observable timestamp would be provided externally (from client, > from local context for server node). > * Read timestamp is determined as {{max(lastObservableTs, now() - > safeTimePropagationFrequency)}} > * Add a new method to start read only transaction with specific timestamp: > {code} > /** > * Starts a readonly transaction with last observable timestamp. > * > * @param lastObservableTs Read timestamp. > * @return Reade only transaction. > */ > public ReadOnlyTransactionImpl begin(HybridTimestamp lastObservableTs) > {code} > *Definition of done* > API for RO transaction in past is implemented. The read transaction timestamp > should evaluate by formula: {{max(lastObservableTs, now() - > safeTimePropagationFrequency)}} and available through > {{ReadOnlyTransactionImpl .readTimestamp()}} -- This message was sent by Atlassian Jira (v8.20.10#820010)