You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Dmitry Sherstobitov (Jira)" <ji...@apache.org> on 2021/08/17 17:26:00 UTC
[jira] [Closed] (IGNITE-15317) Cache.put/get Jepsen Elle test
failed for Java Thin Client
[ https://issues.apache.org/jira/browse/IGNITE-15317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Sherstobitov closed IGNITE-15317.
----------------------------------------
Ignite Flags: (was: Docs Required,Release Notes Required)
> Cache.put/get Jepsen Elle test failed for Java Thin Client
> ----------------------------------------------------------
>
> Key: IGNITE-15317
> URL: https://issues.apache.org/jira/browse/IGNITE-15317
> Project: Ignite
> Issue Type: Bug
> Components: thin client
> Affects Versions: 2.10
> Reporter: Dmitry Sherstobitov
> Priority: Critical
>
> I've created simple jepsen elle test with for basic functionality cache.get/put. There is 2 versions of clients: one for thick client and other for thin client. Invoke code is exactly the same.
> Test passed for thick client and failed for thin client. Note that this issue is reproducible even with noop nemesis algorithm.
> {code:java}
> (reduce
> (fn [txn' [f k v :as micro-op]]
> (case f
> :r (let [value (read-value cache k)]
> (conj txn' [f k value]))
> :w (do
> (let [contain-key (.containsKey cache k)
> value (read-value cache k)]
> (if (or (not contain-key) (and contain-key (< value v)))
> (.put cache k v)
> (vreset! tx-state false))) ; bye functional programming, we are saving state here to fail tx later
> (conj txn' micro-op))))
> {code}
> GitHub repo with jepsen code: https://github.com/qvad/jepsen (see ignite folder there, there is also small guide how to launch hyper-v VM and run test there)
> Elle reports following anomalies (:anomaly-types (:G1a :G1b :internal)), which is aborted reads and intermediate reads.
> Anomalies description: https://sitano.github.io/theory/databases/2019/07/30/tx-isolation-anomalies/
--
This message was sent by Atlassian Jira
(v8.3.4#803005)