[ 
https://issues.apache.org/jira/browse/IGNITE-1681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14998416#comment-14998416
 ] 

Denis Magda edited comment on IGNITE-1681 at 11/10/15 11:15 AM:
----------------------------------------------------------------

*Andrey*, thanks for the tests, merged them into the release branch. It worth 
to have them in any case.

However this Jira issue doesn't fully solve the situation mentioned in the 
original user list.
The load balancer completes load/loadAll futures as soon as they get data from 
a storage but before the retrieved data is in inserted into the memory.

User says exactly the following:
_I have a CacheStore that loads missing data from the underlying data source 
(an Oracle DB).  At present, multiple requests for the same key will cause 
multiple loads from that Oracle DB, until the object is inserted * in to the 
memory cache by Ignite *. 
Is there currently any way to queue up subsequent requests for a CacheStore 
load() that is "in flight", and then signal them all when the data is available 
in the memory cache?_ 

This will require more efforts from us and it's not clear whether such 
improvement really makes sense to do.

I would merge the implementation for {{setStoreConcurrentLoadAllThreshold}} 
because it makes sense to have it and the user can try it in action.
Probably it will be enough for him. If it won't we can open another ticket.

*Michael*, please add the tests for {{setStoreConcurrentLoadAllThreshold}}. You 
need to create the tests like Andrey did above but use a threshold that is set 
via {{setStoreConcurrentLoadAllThreshold}}. I've merged Andrey's tests to 
release branch ignite-1.5.



was (Author: dmagda):
Andrey, thanks for the tests, merged them into the release branch. It worth to 
have them in any case.

However this Jira issue doesn't fully solve the situation mentioned in the 
original user list.
The load balancer completes load/loadAll futures as soon as they get data from 
a storage but before the retrieved data is in inserted into the memory.

User says exactly the following:
??I have a CacheStore that loads missing data from the underlying data source 
(an Oracle DB).  At present, multiple requests for the same key will cause 
multiple loads from that Oracle DB, until the object is inserted * in to the 
memory cache by Ignite *. 
Is there currently any way to queue up subsequent requests for a CacheStore 
load() that is "in flight", and then signal them all when the data is available 
in the memory cache??? 

This will require more efforts from us and it's not clear whether such 
improvement really makes sense to do.

I would merge the implementation for {{setStoreConcurrentLoadAllThreshold}} 
because it makes sense to have it and the user can try it in action.
Probably it will be enough for him. If it won't we can open another ticket.

* Michael *, please add the tests for {{setStoreConcurrentLoadAllThreshold}}. 
You need to create the tests like Andrey did above but use a threshold that is 
set via {{setStoreConcurrentLoadAllThreshold}}. I've merged Andrey's tests to 
release branch ignite-1.5.


> loadAll threshold is not configurable for CacheStoreBalancingWrapper
> --------------------------------------------------------------------
>
>                 Key: IGNITE-1681
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1681
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: ignite-1.4
>            Reporter: Alexey Goncharuk
>            Assignee: Denis Magda
>             Fix For: 1.5
>
>         Attachments: master_6844370_ignite-1681.patch
>
>
> CacheStoreBalancingWrapper is created in cache store manager using default 
> constructor. There is no way to override a default value for loadAllThreshold.
> We can add a cache configuration parameter named 
> storeConcurrentLoadAllThreshold to control this:
> {code}
> CacheConfiguration {
> ...
>     public int getStoreConcurrentLoadAllThreshold() {...}
>     public void setStoreConcurrentLoadAllThreshold(int 
> storeConcurrentLoadAllThreshold) {...}
> ...
> }
> {code}



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

Reply via email to