You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Artem Shutak (JIRA)" <ji...@apache.org> on 2015/10/08 12:16:26 UTC

[jira] [Created] (IGNITE-1635) Cache.invoke() can work wrong in a failover scenario

Artem Shutak created IGNITE-1635:
------------------------------------

             Summary: Cache.invoke() can work wrong in a failover scenario
                 Key: IGNITE-1635
                 URL: https://issues.apache.org/jira/browse/IGNITE-1635
             Project: Ignite
          Issue Type: Bug
            Reporter: Artem Shutak
            Assignee: Artem Shutak
             Fix For: ignite-1.5


In process of working on IGNITE-1397 (Load/consistency test framework) I've faced with a wrong cache state after Cache.invoke().

Configuration:
- 1 client node
- 3 server nodes (1 backup)
- duration - 3 hours
- one random server node is killed every 10 min and after 2 minutes started again

h5. Transactional invoke retry consistency
Each client generates a random integer K in a limited range (say, [0, 100000]) and creates a batch of 5 (may be configured) keys in the form 'key-' + K + '-' + n + '-1', 'key-' + K + '-' + n + '-2', ... where n is a unique sequence number assigned to the client. Each client maintains a local map that it updates together with cache. Client invokes an increment closure for all generated keys (no explicit transaction is used) and atomically increments value for corresponding keys in the local map. No exceptions must be thrown to the user code. To validate cache contents, all writes from the client should be stopped, values in the local map must be equal to the values in the cache.

After 25 min in logs of client: {{Got different values [key='key-89611-0-3', cacheVal=213, localMapVal=214]}}.

All other "key-89611-0-*" keys in cache have value 214. For the key 'key-89611-0-3' incremental cache invoke didn't happen.







--
This message was sent by Atlassian JIRA
(v6.3.4#6332)