[ 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)