|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DistributionManager
A component that manages the distribution of elements across a cache cluster
Method Summary | |
---|---|
void |
applyReceivedState(Map<Object,InternalCacheValue> state)
Applies a state map received via a RehashControlCommand. |
void |
applyRemoteTxLog(List<WriteCommand> modifications)
Applies an ordered list of modifications to the current node. |
List<Address> |
getAffectedNodes(Set<Object> affectedKeys)
A helper method that retrieves a list of nodes affected by operations on a set of keys. |
CacheStore |
getCacheStoreForRehashing()
Retrieves a cache store if one is available and set up for use in rehashing. |
ConsistentHash |
getConsistentHash()
Retrieves the consistent hash instance currently in use, which may be an instance of the configured ConsistentHash instance (which defaults to DefaultConsistentHash , or an instance of
UnionConsistentHash if a rehash is in progress. |
TransactionLogger |
getTransactionLogger()
Retrieves the transaction logger instance associated with this DistributionManager |
void |
informRehashOnJoin(Address joiner,
boolean starting)
This will cause all nodes to add the joiner to their consistent hash instance (usually by creating a UnionConsistentHash |
boolean |
isAffectedByRehash(Object key)
Tests whether a given key is affected by a rehash that may be in progress. |
boolean |
isJoinComplete()
Tests whether the current instance has completed joining the cluster |
boolean |
isLocal(Object key)
|
boolean |
isRehashInProgress()
Tests whether a rehash is in progress |
List<Address> |
locate(Object key)
Locates a key in a cluster. |
Map<Object,List<Address>> |
locateAll(Collection<Object> keys)
Locates a list of keys in a cluster. |
void |
notifyJoinComplete(Address joiner)
Notifies a coordinator when a join completes |
List<Address> |
requestPermissionToJoin(Address joiner)
"Asks" a coordinator if a joiner may join. |
InternalCacheEntry |
retrieveFromRemoteSource(Object key)
Retrieves a cache entry from a remote source. |
void |
setConsistentHash(ConsistentHash consistentHash)
Sets the consistent hash implementation in use. |
void |
transformForL1(CacheEntry entry)
Transforms a cache entry so it is marked for L1 rather than the primary cache data structure. |
Method Detail |
---|
boolean isLocal(Object key)
List<Address> locate(Object key)
key
- key to test
Map<Object,List<Address>> locateAll(Collection<Object> keys)
locate(Object)
the returned addresses may not be owners
of the keys if a rehash happens to be in progress or is pending, so when querying these servers, invalid responses
should be checked for and the next address checked accordingly.
keys
- list of keys to test
void transformForL1(CacheEntry entry)
entry
- entry to transformInternalCacheEntry retrieveFromRemoteSource(Object key) throws Exception
ClusteredGetCommand
and some form of quorum of responses if the responses returned are inconsistent - often the case if there is a
rehash in progress, involving nodes that the key maps to.
key
- key to look up
Exception
- if something bad happensConsistentHash getConsistentHash()
DefaultConsistentHash
, or an instance of
UnionConsistentHash
if a rehash is in progress.
void setConsistentHash(ConsistentHash consistentHash)
consistentHash
- consistent hash to set toboolean isAffectedByRehash(Object key)
key
- key to test
TransactionLogger getTransactionLogger()
List<Address> requestPermissionToJoin(Address joiner)
joiner
- joiner who wants to join
void notifyJoinComplete(Address joiner)
joiner
- joiner who has completed.void informRehashOnJoin(Address joiner, boolean starting)
UnionConsistentHash
joiner
- address of joinerstarting
- if true, the joiner is reporting that it is starting the join process. If false, the joiner is
reporting that it has completed the join process.CacheStore getCacheStoreForRehashing()
boolean isRehashInProgress()
boolean isJoinComplete()
void applyReceivedState(Map<Object,InternalCacheValue> state)
state
- state to applyList<Address> getAffectedNodes(Set<Object> affectedKeys)
locateAll(java.util.Collection)
and then combine the result addresses.
affectedKeys
- keys to locate
void applyRemoteTxLog(List<WriteCommand> modifications)
modifications
- ordered list of mods
|
Google Analytics | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |