[ 
https://issues.apache.org/jira/browse/IGNITE-24329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]
Pavel Tupitsyn updated IGNITE-24329:
------------------------------------
    Description: 
See how lazy tx works in Java client - we save observableTs when the user 
starts the transaction: 
https://github.com/apache/ignite-3/blob/main/modules/client/src/main/java/org/apache/ignite/internal/client/tx/ClientLazyTransaction.java

The following scenario does not work as expected currently, because we take 
observableTs only later when the transaction is used for the first time in some 
operation:

{code:C#}
await using ITransaction roTx = await client.Transactions.BeginAsync(new 
TransactionOptions(ReadOnly: true));

await pocoView.UpsertAsync(transaction:null, new Person(3, "JACK-2")); // 
Update after RO TX.

Option<Person> roTxRes = await pocoView.GetAsync(roTx, new Person(3, null!)); 
// Expect to see old data
Option<Person> actualRes = await pocoView.GetAsync(null, new Person(3, null!));
{code}

  was:
See how lazy tx works in Java client - we save observableTs when the user 
starts the transaction: 
https://github.com/apache/ignite-3/blob/main/modules/client/src/main/java/org/apache/ignite/internal/client/tx/ClientLazyTransaction.java

The following scenario does not work as expected currently:

{code:C#}
await using ITransaction roTx = await client.Transactions.BeginAsync(new 
TransactionOptions(ReadOnly: true));

await pocoView.UpsertAsync(transaction:null, new Person(3, "JACK-2")); // 
Update after RO TX.

Option<Person> roTxRes = await pocoView.GetAsync(roTx, new Person(3, null!)); 
// Expect to see old data
Option<Person> actualRes = await pocoView.GetAsync(null, new Person(3, null!));
{code}


> .NET: LazyTransaction uses incorrect ObservableTimestamp
> --------------------------------------------------------
>
>                 Key: IGNITE-24329
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24329
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms, thin client
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Critical
>              Labels: ignite-3, important
>             Fix For: 3.0
>
>
> See how lazy tx works in Java client - we save observableTs when the user 
> starts the transaction: 
> https://github.com/apache/ignite-3/blob/main/modules/client/src/main/java/org/apache/ignite/internal/client/tx/ClientLazyTransaction.java
> The following scenario does not work as expected currently, because we take 
> observableTs only later when the transaction is used for the first time in 
> some operation:
> {code:C#}
> await using ITransaction roTx = await client.Transactions.BeginAsync(new 
> TransactionOptions(ReadOnly: true));
> await pocoView.UpsertAsync(transaction:null, new Person(3, "JACK-2")); // 
> Update after RO TX.
> Option<Person> roTxRes = await pocoView.GetAsync(roTx, new Person(3, null!)); 
> // Expect to see old data
> Option<Person> actualRes = await pocoView.GetAsync(null, new Person(3, 
> null!));
> {code}



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

Reply via email to