[
https://issues.apache.org/jira/browse/IGNITE-27594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Tupitsyn updated IGNITE-27594:
------------------------------------
Labels: ignite-3 (was: )
> Optimize observable timestamp handling in compute jobs
> ------------------------------------------------------
>
> Key: IGNITE-27594
> URL: https://issues.apache.org/jira/browse/IGNITE-27594
> Project: Ignite
> Issue Type: Improvement
> Components: compute ai3
> Reporter: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.2
>
>
> Currently, every compute job carries an observable timestamp from the
> initiator client, thin or embedded (implemented in IGNITE-25718).
> However, server-side logic is suboptimal: in
> *ComputeComponentImpl#executeLocally* we update the global
> *observableTimestampTracker* for the current node, which affects operations
> from other clients which may have older *observableTimestamp*.
> h2. Example
> Two clients send requests to one node
> * *client1.obsTs* = *200*. Sends compute job and bumps *server.obsTs* to
> *200*.
> * *client2.obsTs* = *100*. Sends an SQL request which executes with *obsTs* =
> *200*, even though it could use *100* and avoid some waiting.
> h2. Proposed Fix
> Use a separate "contextual" *observableTimestampTracker* for every compute
> job, so one job does not affect other operations on the node.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)