[ 
https://issues.apache.org/jira/browse/IGNITE-24659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17933001#comment-17933001
 ] 

Alexey Scherbakov commented on IGNITE-24659:
--------------------------------------------

This is expected behavior because RO transactions use SERIALIZABLE isolation.

Clients use observable timestamp (which is a kind of causality token) to 
improve isolation guaranties for invocations within the same client.

But currently support is limited for transactions only.

We can attempt to extend support for other operation types (compute, etc) as 
well.

> Client does not observe table changes from compute jobs and streamer receiver
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-24659
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24659
>             Project: Ignite
>          Issue Type: Bug
>          Components: compute
>    Affects Versions: 3.0
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Blocker
>              Labels: ignite-3
>             Fix For: 3.1
>
>         Attachments: datastreamerexample.java
>
>
> See attached example. When we perform a table update in a compute job or in a 
> streamer receiver, and the job gets executed on another node (client -> 
> node1[handle request] -> node2[execute job]), we don't send correct 
> observableTimestamp back to the client. As a result, the client does not 
> observe the changes in the table immediately. If you uncomment Thread.sleep 
> in the example, the code works as expected.
> This bug might be fixed by IGNITE-23806. If we don't find a good solution or 
> don't have enough time, the fix is to always return 
> *clockService.currentLong()* from the node that executes the job/receiver.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to