[ 
https://issues.apache.org/jira/browse/IGNITE-4465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Valentin Kulichenko updated IGNITE-4465:
----------------------------------------
    Attachment: ReadThroughTest.java

> 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
>
>         Attachments: ReadThroughTest.java
>
>
> 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