|
||||||||||
| 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 |
applyRemoteTxLog(List<WriteCommand> modifications)
Applies an ordered list of modifications to the current node. |
void |
applyState(ConsistentHash newConsistentHash,
Map<Object,InternalCacheValue> state,
RemoteTransactionLogger transactionLogger,
boolean forLeave)
|
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. |
DataLocality |
getLocality(Object key)
Returns the data locality characteristics of a given key. |
TopologyInfo |
getTopologyInfo()
|
TransactionLogger |
getTransactionLogger()
Retrieves the transaction logger instance associated with this DistributionManager |
NodeTopologyInfo |
informRehashOnJoin(Address joiner,
boolean starting,
NodeTopologyInfo nodeTopologyInfo)
This will cause all nodes to add the joiner to their consistent hash instance (usually by creating a UnionConsistentHash |
void |
informRehashOnLeave(Address sender)
|
boolean |
isAffectedByRehash(Object key)
Tests whether a given key is affected by a rehash that may be in progress. |
boolean |
isInFinalJoinPhase()
|
boolean |
isJoinComplete()
Tests whether the current instance has completed joining the cluster |
boolean |
isLocal(Object key)
Deprecated. |
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. |
Map<Object,List<Address>> |
locateAll(Collection<Object> keys,
int numOwners)
Same as locateAll(java.util.Collection), but the list of addresses only contains numOwners owners. |
Set<Address> |
requestPermissionToJoin(Address joiner)
"Asks" a coordinator if a joiner may join. |
InternalCacheEntry |
retrieveFromRemoteSource(Object key,
InvocationContext ctx)
Retrieves a cache entry from a remote source. |
void |
setConsistentHash(ConsistentHash consistentHash)
Sets the consistent hash implementation in use. |
void |
setJoinComplete(boolean value)
|
void |
setRehashInProgress(boolean value)
|
void |
transformForL1(CacheEntry entry)
Transforms a cache entry so it is marked for L1 rather than the primary cache data structure. |
void |
waitForFinalJoin()
|
| Method Detail |
|---|
@Deprecated boolean isLocal(Object key)
getLocality(Object) instead.
key - key to test
DataLocality getLocality(Object key)
key - key to test
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
Map<Object,List<Address>> locateAll(Collection<Object> keys,
int numOwners)
locateAll(java.util.Collection), but the list of addresses only contains numOwners owners.
void transformForL1(CacheEntry entry)
entry - entry to transform
InternalCacheEntry retrieveFromRemoteSource(Object key,
InvocationContext ctx)
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 upctx -
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()
Set<Address> requestPermissionToJoin(Address joiner)
joiner - joiner who wants to join
NodeTopologyInfo informRehashOnJoin(Address joiner,
boolean starting,
NodeTopologyInfo nodeTopologyInfo)
UnionConsistentHash
joiner - address of joinerstarting - if true, the joiner is reporting that it is starting the join process. If false, the joiner isnodeTopologyInfo - CacheStore getCacheStoreForRehashing()
boolean isRehashInProgress()
boolean isJoinComplete()
boolean isInFinalJoinPhase()
void waitForFinalJoin()
List<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 modsvoid informRehashOnLeave(Address sender)
void applyState(ConsistentHash newConsistentHash,
Map<Object,InternalCacheValue> state,
RemoteTransactionLogger transactionLogger,
boolean forLeave)
void setRehashInProgress(boolean value)
TopologyInfo getTopologyInfo()
void setJoinComplete(boolean value)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||