You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anton Vinogradov (Jira)" <ji...@apache.org> on 2020/04/03 12:21:00 UTC

[jira] [Commented] (IGNITE-12739) Optimistic serializable transactions may fail infinitely when read-through is enabled

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

Anton Vinogradov commented on IGNITE-12739:
-------------------------------------------

[~vladsz83],

LGTM

 

[~agoncharuk], 

Could you please perform the final check?

> Optimistic serializable transactions may fail infinitely when read-through is enabled
> -------------------------------------------------------------------------------------
>
>                 Key: IGNITE-12739
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12739
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.8
>            Reporter: Alexey Goncharuk
>            Assignee: Vladimir Steshin
>            Priority: Major
>             Fix For: 2.9
>
>         Attachments: ReplicatedOptimisticTxTest.java
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> In current design it is possible that the same key-value pair will be stored with different versions on primary and backup nodes. For example, a read-through is invoked separately on primary backup and values are stored with node local version.
> With this precondition, if an optimistic serializable transaction is started from a backup node, the serializable check version is read from backup, but validated on primary node, which will fail the transaction with optimistic read/write conflict exception until the versions are overwritten to the same value (for example, via a pessimistic transaction).
> While we need to additionally investigate whether we want to change the read-through logic to ensure the same value and version on all nodes, this particular scenario should be fixed by always enforcing reading from a primary node inside an optimistic serializable transaction.
> The reproducer is attached. A known workaround is to disable read load balancing by setting "-DIGNITE_READ_LOAD_BALANCING=false" system property.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)