Package org.infinispan.affinity
Class KeyAffinityServiceFactory
- java.lang.Object
-
- org.infinispan.affinity.KeyAffinityServiceFactory
-
public class KeyAffinityServiceFactory extends Object
Factory forKeyAffinityService
. Services build by this factory have the following characteristics:- are run asynchronously by a thread that can be plugged through an
ExecutorFactory
- for key generation, the
ConsistentHash
function of a distributed cache is used. Service does not make sense for replicated caches. - for each address cluster member (identified by an
Address
member, a fixed number of keys is generated
- Since:
- 4.1
- Author:
- Mircea.Markus@jboss.com
- See Also:
KeyAffinityService
- are run asynchronously by a thread that can be plugged through an
-
-
Constructor Summary
Constructors Constructor Description KeyAffinityServiceFactory()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <K,V>
KeyAffinityService<K>newKeyAffinityService(Cache<K,V> cache, Collection<org.infinispan.remoting.transport.Address> filter, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize)
static <K,V>
KeyAffinityService<K>newKeyAffinityService(Cache<K,V> cache, Collection<org.infinispan.remoting.transport.Address> filter, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize, boolean start)
Creates a service that would only generate keys for addresses specified in filter.static <K,V>
KeyAffinityService<K>newKeyAffinityService(Cache<K,V> cache, Executor ex, KeyGenerator<K> keyGenerator, int keyBufferSize)
Same asnewKeyAffinityService(org.infinispan.Cache, java.util.concurrent.Executor, KeyGenerator, int, boolean)
with start == true;static <K,V>
KeyAffinityService<K>newKeyAffinityService(Cache<K,V> cache, Executor ex, KeyGenerator<K> keyGenerator, int keyBufferSize, boolean start)
Creates anKeyAffinityService
instance that generates keys mapped to all addresses in the cluster.static <K,V>
KeyAffinityService<K>newLocalKeyAffinityService(Cache<K,V> cache, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize)
Same asnewLocalKeyAffinityService(org.infinispan.Cache, KeyGenerator, java.util.concurrent.Executor, int, boolean)
with start == true.static <K,V>
KeyAffinityService<K>newLocalKeyAffinityService(Cache<K,V> cache, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize, boolean start)
Created an service that only generates keys for the local address.
-
-
-
Method Detail
-
newKeyAffinityService
public static <K,V> KeyAffinityService<K> newKeyAffinityService(Cache<K,V> cache, Executor ex, KeyGenerator<K> keyGenerator, int keyBufferSize, boolean start)
Creates anKeyAffinityService
instance that generates keys mapped to all addresses in the cluster. Changes in topology would also noticed: by adding a new node, the service will automatically start generating keys for it.- Parameters:
cache
- the distributed cache for which this service runsex
- used for running async key generation process. On service shutdown, the executor won't be stopped; i.e. it's user responsibility manage it's lifecycle.keyGenerator
- allows one to control how the generated keys look like.keyBufferSize
- the number of generated keys perAddress
.start
- weather to start the service or not- Returns:
- an
KeyAffinityService
implementation. - Throws:
IllegalStateException
- if the supplied cache is not DIST.
-
newKeyAffinityService
public static <K,V> KeyAffinityService<K> newKeyAffinityService(Cache<K,V> cache, Executor ex, KeyGenerator<K> keyGenerator, int keyBufferSize)
Same asnewKeyAffinityService(org.infinispan.Cache, java.util.concurrent.Executor, KeyGenerator, int, boolean)
with start == true;
-
newKeyAffinityService
public static <K,V> KeyAffinityService<K> newKeyAffinityService(Cache<K,V> cache, Collection<org.infinispan.remoting.transport.Address> filter, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize, boolean start)
Creates a service that would only generate keys for addresses specified in filter.- Parameters:
filter
- the set of addresses for which to generate keys
-
newKeyAffinityService
public static <K,V> KeyAffinityService<K> newKeyAffinityService(Cache<K,V> cache, Collection<org.infinispan.remoting.transport.Address> filter, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize)
-
newLocalKeyAffinityService
public static <K,V> KeyAffinityService<K> newLocalKeyAffinityService(Cache<K,V> cache, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize, boolean start)
Created an service that only generates keys for the local address.
-
newLocalKeyAffinityService
public static <K,V> KeyAffinityService<K> newLocalKeyAffinityService(Cache<K,V> cache, KeyGenerator<K> keyGenerator, Executor ex, int keyBufferSize)
Same asnewLocalKeyAffinityService(org.infinispan.Cache, KeyGenerator, java.util.concurrent.Executor, int, boolean)
with start == true.
-
-