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)

Reply via email to