[
https://issues.apache.org/jira/browse/IGNITE-19888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Tupitsyn updated IGNITE-19888:
------------------------------------
Description:
*Motivation*
The read timestamp for a RO transaction is supposed to be determined by a
client timestamp to linearize transactions.
*Implementation notes*
* The request which starts RO transaction (IGNITE-19887) has to provide a
timestamp.
* Requests which start SQL, also provide a specific timestamp (if they start RO
internally) (IGNITE-19898 here the concrete method to retrieve timestamp will
be implemented).
* The current server timestamp ({{clock.now()}}) should be added to (except in
the cases above) the transaction response.
* If a server response does not have the timestamp or timestamp is less than
the client already has, do nothing.
* If the time is grater than the client has, the client timestamp should be
updated.
* The timestamp is used to start RO transaction (IGNITE-19887)
*Definition of done*
The timestamp is passed from the server-side to a client. The client just save
the timestamp and send it in each request to server-side.
All client-side created RO transactions should execute in past with timestamp
has been determining by client timestamp.
was:
*Motivation*
The read timestamp for a RO transaction is supposed to be determined by a
client timestamp to linearize transactions.
*Implementation notes*
* The response, which start RO transaction (IGNITE-19887) has to provide a
timestamp.
* Responses, which start SQL, also provide a specific timestamp (if they start
RO internally) (IGNITE-19898 here the concrete method to retrieve timestamp
will be implemented).
* The current server timestamp ({{clock.now()}}) should be added to (except in
the cases above) the transaction response.
* If a server response does not have the timestamp or timestamp is less than
the client already has, do nothing.
* If the time is grater than the client has, the client timestamp should be
updated.
* The timestamp is used to start RO transaction (IGNITE-19887)
*Definition of done*
The timestamp is passed from the server-side to a client. The client just save
the timestamp and send it in each request to server-side.
All client-side created RO transactions should execute in past with timestamp
has been determining by client timestamp.
> Java client: Track observable timestamp
> ---------------------------------------
>
> Key: IGNITE-19888
> URL: https://issues.apache.org/jira/browse/IGNITE-19888
> Project: Ignite
> Issue Type: Improvement
> Components: platforms, thin client
> Affects Versions: 3.0.0-beta1
> Reporter: Vladislav Pyatkov
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> *Motivation*
> The read timestamp for a RO transaction is supposed to be determined by a
> client timestamp to linearize transactions.
> *Implementation notes*
> * The request which starts RO transaction (IGNITE-19887) has to provide a
> timestamp.
> * Requests which start SQL, also provide a specific timestamp (if they start
> RO internally) (IGNITE-19898 here the concrete method to retrieve timestamp
> will be implemented).
> * The current server timestamp ({{clock.now()}}) should be added to (except
> in the cases above) the transaction response.
> * If a server response does not have the timestamp or timestamp is less than
> the client already has, do nothing.
> * If the time is grater than the client has, the client timestamp should be
> updated.
> * The timestamp is used to start RO transaction (IGNITE-19887)
> *Definition of done*
> The timestamp is passed from the server-side to a client. The client just
> save the timestamp and send it in each request to server-side.
> All client-side created RO transactions should execute in past with timestamp
> has been determining by client timestamp.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)