-
Enhancement
-
Resolution: Done
-
Critical
-
5.1.2.FINAL
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.)
- relates to
-
ISPN-2812 Allow Map-Reduce tasks run in local and replicated envs.
- Closed