[
https://issues.apache.org/jira/browse/IGNITE-24275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin updated IGNITE-24275:
--------------------------------------
Description:
In summary, the requirements for a {{HybridTimestampTracker}} (*observable time
tracker*) are as follows:
* Observed time can be updated multiple times
* Observed time can be updated from different threads
* The updated value should be visible from different threads
* When updating the time, the tracker must provide a guarantee that the updated
value is monotonically increasing
>From that perspective current implementation of
>{{HybridTimestampTracker.clientTracker}} is broken.
* The method {{get()}} returns only initial value (so tracker cannot be used
multiple times, for example for SQL script processing)
* Consumer usually stores value to non-volatile field
* There is no check that the new value is greater than the previous one
We need to rework {{clientTracker}} to meet requirement or replace it where
with {{atomicTracker}}.
p.s. check TODO in codebase
was:
In summary, the requirements for a {{HybridTimestampTracker}} (*observable time
tracker*) are as follows:
* Observed time can be updated multiple times
* Observed time can be updated from different threads
* The updated value should be visible from different threads
* When updating the time, the tracker must provide a guarantee that the updated
value is monotonically increasing
>From that perspective current implementation of
>{{HybridTimestampTracker.clientTracker}} is broken.
* The method {{get()}} returns only initial value
* Consumer usually stores value to non-volatile field
* There is no check that the new value is greater than the previous one
We need to rework {{clientTracker}} to meet requirement or replace it where
with {{atomicTracker}}.
p.s. check TODO in codebase
> Sql. Rework or replace HybridTimestampTracker.clientTracker
> -----------------------------------------------------------
>
> Key: IGNITE-24275
> URL: https://issues.apache.org/jira/browse/IGNITE-24275
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
>
> In summary, the requirements for a {{HybridTimestampTracker}} (*observable
> time tracker*) are as follows:
> * Observed time can be updated multiple times
> * Observed time can be updated from different threads
> * The updated value should be visible from different threads
> * When updating the time, the tracker must provide a guarantee that the
> updated value is monotonically increasing
> From that perspective current implementation of
> {{HybridTimestampTracker.clientTracker}} is broken.
> * The method {{get()}} returns only initial value (so tracker cannot be used
> multiple times, for example for SQL script processing)
> * Consumer usually stores value to non-volatile field
> * There is no check that the new value is greater than the previous one
> We need to rework {{clientTracker}} to meet requirement or replace it where
> with {{atomicTracker}}.
> p.s. check TODO in codebase
--
This message was sent by Atlassian Jira
(v8.20.10#820010)