Reputation: 9986
I am trying to figure out what kind of getAll
I should use. Currently, in a project, I work for, is implemented way through QueryCursorImpl
try (QueryCursor<Cache.Entry<IgnitePrimaryKey, V>> query = cache.query(new ScanQuery<>(filter))) {
return query.getAll()
.stream()
...
} catch (Exception e) {
...
}
However, Most of the times my application cannot obtain data (data is empty). On the other hand cache
variable is a IgniteCacheProxy
and it has getAll
method itself. There is some problem with set of keys, because actual signature of IgniteCacheProxy.getAll
is following:
public Map<K, V> getAll(Set<? extends K> keys)
However, if I solve issue with keys, maybe I should prefer IgniteCacheProxy.getAll
because I can see asynchronouse code inside it rather than QueryCursorImpl.getAll
?
Upvotes: 0
Views: 89
Reputation: 8390
Sounds like you want to simply iterate over all the data you have in cache. If that's the case, then the easiest way would be to simple get Iterator
(IgniteCache
implements Iterable
) and the loop through it. Using getAll
would mean fetching all the data from a distributed cache to a client, which is typically a very bad idea, especially for large data set. Ignite iterator, however, will fetch data in pages and therefore will never blow the client's memory.
Upvotes: 2