Alexey Goncharuk created IGNITE-12739:
-----------------------------------------

             Summary: 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
            Reporter: Alexey Goncharuk


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)

Reply via email to