[ https://issues.apache.org/jira/browse/IGNITE-19887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17745069#comment-17745069 ]
Vladislav Pyatkov commented on IGNITE-19887: -------------------------------------------- LGTM Merged 19cbcd669c6bc48654870eeddda73f1521cf27b2 > 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 > Assignee: Denis Chudov > Priority: Major > Labels: ignite-3 > Time Spent: 0.5h > Remaining Estimate: 0h > > *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 observable timestamp and current time in > order to be available to retrieve all data which is locally viewed. > *Implementation notes* > * The observable timestamp would be provided externally. > * Read timestamp is determined as {{{}max(observableTs, now() - > safeTimePropagationFrequency - maxClockSkew){}}}. > * Add a new method to start read only transaction with specific observable > timestamp: > {code:java} > /** > * Starts a readonly transaction with an observable timestamp. > * > * @param observableTs Observable timestamp. > * @return Reade only transaction. > */ > public ReadOnlyTransactionImpl begin(HybridTimestamp observableTs) > {code} > *Definition of done* > Internal API for RO transaction in past is implemented. The read transaction > timestamp should evaluate by formula: {{max(observableTs, now() - > safeTimePropagationFrequency)}} and available through > {{ReadOnlyTransactionImpl .readTimestamp()}} -- This message was sent by Atlassian Jira (v8.20.10#820010)