You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Valentin Kulichenko (JIRA)" <ji...@apache.org> on 2016/12/21 04:43:58 UTC

[jira] [Created] (IGNITE-4465) Read-through is not properly working with multiple gets executed in parallel

Valentin Kulichenko created IGNITE-4465:
-------------------------------------------

             Summary: Read-through is not properly working with multiple gets executed in parallel
                 Key: IGNITE-4465
                 URL: https://issues.apache.org/jira/browse/IGNITE-4465
             Project: Ignite
          Issue Type: Bug
          Components: cache
    Affects Versions: 1.8
            Reporter: Valentin Kulichenko
            Priority: Critical
             Fix For: 1.9


The issue is sporadic and very hard to isolate, however I managed to create a test that reproduces it. Basically, the scenario is the following:
* We have one server and one client.
* The client creates a cache with read through enabled.
* The client then executes bunch of jobs (number of jobs is bigger than number of threads in server's public pool) asynchronously in parallel.
* {{CacheStore.load()}} method is called more than once and invocations go one after another (sometimes even in the same thread!) with an interval of a bit more than one second, which is the duration of load (there is a {{Thread.sleep(1000)}} in the implementation.
* In addition, statistics show that number of misses go up to 50 which is number of jobs. I would not expect more than 16 there. First 16 jobs executed in parallel can all register miss at the same time before load happens. But all consecutive execution must read the value from cache.

Test is attached.





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