]
Vladimir Blagojevic commented on ISPN-2192:
-------------------------------------------
Ok I see what you mean Randall! You basically want to execute certain code on all cache
entries regardless of cache mode. We could make another class that implements
DistributedExecutorService, say DefaultLocalExecutorService?
Allow using Distributed Execution against any cache (not just
clustered caches)
-------------------------------------------------------------------------------
Key: ISPN-2192
URL:
https://issues.jboss.org/browse/ISPN-2192
Project: Infinispan
Issue Type: Enhancement
Affects Versions: 5.1.2.FINAL
Reporter: Randall Hauch
Assignee: Manik Surtani
Priority: Critical
It is often desirable to process all entries in a cache, and there is no reliable and
consistent way to do that for any cache.
If a cache is clustered, then map-reduce can be used (although IIUC it currently
doesn't guarantee to process non-materialized entries for caches that have a cache
store) and distributed execution can be used (IIUC this will be called for all keys owned
by the cluster node). However, neither of these work on local caches.
If a cache is local and there is no cache store, then apparently {{keySet()}} does work
and allows a client to iterate over the keys in the local cache. However, if the local
cache is configured to have a cache store, then the {{keySet()}} method will return only
the keys for the materialized entries and does not return all of the keys in the cache. Of
course, if a local cache does have a cache store, then its possible to obtain the keys
using {{CacheLoader.loadAllKeys(...)}} (obviously this is probably not something a client
should do).
In short, it should be possible to use Distributed Execution against any cache,
regardless of its configuration. (Ideally, it would be possible for Map-Reduce to also be
used against any cache.)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: