Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2192

Allow using Distributed Execution against any cache (not just clustered caches)

XMLWordPrintable

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

              vblagoje Vladimir Blagojevic (Inactive)
              rhauch Randall Hauch (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: