[ 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 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 (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 > 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 with > {{atomicTracker}}. > p.s. check TODO in codebase -- This message was sent by Atlassian Jira (v8.20.10#820010)