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

Vladislav Pyatkov updated IGNITE-19887:
---------------------------------------
    Description: 
*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)}}.
* Add a new method to start read only transaction with specific observable 
timestamp:
{code}
/**
 * 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*
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()}}


  was:
*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()}}



> 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 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)}}.
> * Add a new method to start read only transaction with specific observable 
> timestamp:
> {code}
> /**
>  * 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*
> 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)

Reply via email to