I am using region getall method to get values for all keys, but what i found is that for the key present in apache geode it gets data quickly but for one which is not present in apache geode. it calls the cache loader one by one. Is there any mechanism so that calling cacheloader can be made parallel.
I don't think there's a way of achieving this out of the box, at least not while using a single Region.getAll()
operation. If I recall correctly, the servers just iterate through the keys
and performs a get
on every single one, which ends up triggering the CacheLoader
execution.
You could, however, achieve some degree of parallelism by splitting the set of keys
into multiple sets, and launching different threads to execute the Region.getAll()
operation using these smaller sets. The actual size of each set and the number of threads will depend on the ratio of cache hits / misses you expect, and your SLA requirements, of course.