org.jboss.cache.buddyreplication
Class BuddyManager

java.lang.Object
  extended by org.jboss.cache.buddyreplication.BuddyManager

public class BuddyManager
extends Object

Class that manages buddy replication groups.

Author:
Manik Surtani (manik AT jboss DOT org)

Nested Class Summary
 class BuddyManager.ViewChangeListener
           
 
Field Summary
static String BUDDY_BACKUP_SUBTREE
          Constants representng the buddy backup subtree
static Fqn BUDDY_BACKUP_SUBTREE_FQN
           
 
Constructor Summary
BuddyManager()
           
BuddyManager(BuddyReplicationConfig config)
           
 
Method Summary
protected  BuddyLocator createBuddyLocator(BuddyReplicationConfig.BuddyLocatorConfig config)
           
protected  BuddyLocator createDefaultBuddyLocator()
           
 List<org.jgroups.Address> getBackupDataOwners()
          Returns a List identifying the DataOwner for each buddy group for which this node serves as a backup node.
 List<org.jgroups.Address> getBuddyAddresses()
          Returns a list of buddies for which this instance is Data Owner.
 Vector<org.jgroups.Address> getBuddyAddressesAsVector()
          Created as an optimisation for JGroups, which uses vectors.
 int getBuddyCommunicationTimeout()
           
 String getBuddyGroup()
           
 String getBuddyGroupsIParticipateIn()
           
 String getBuddyPoolName()
           
 BuddyReplicationConfig getConfig()
           
 List<org.jgroups.Address> getMembersOutsideBuddyGroup()
           
 void handleAssignToBuddyGroup(BuddyGroup newGroup, Map<Fqn,byte[]> state)
          Called by AssignToBuddyGroupCommand thic command is received from a remote cache.
 void handlePoolNameBroadcast(org.jgroups.Address address, String poolName)
          Called by CacheImpl._remoteAnnounceBuddyPoolName(Address address, String buddyPoolName) when a view change occurs and caches need to inform the cluster of which buddy pool it is in.
 void handleRemoveFromBuddyGroup(String groupName)
          Called by CacheImpl._remoteRemoveFromBuddyGroup(String groupName) when a method call for this is received from a remote cache.
 void init()
           
 void injectDependencies(CacheSPI cache, Configuration configuration, RegionManager regionManager, StateTransferManager stateTransferManager, RPCManager rpcManager, Notifier notifier, CommandsFactory factory, DataContainer dataContainer, BuddyFqnTransformer transformer)
           
 boolean isAutoDataGravitation()
           
 boolean isDataGravitationRemoveOnFind()
           
 boolean isDataGravitationSearchBackupTrees()
           
 boolean isEnabled()
           
 void stop()
          Stops the buddy manager and the related async thread.
 VisitableCommand transformFqns(VisitableCommand call)
           
 ReplicateCommand transformReplicateCommand(ReplicateCommand rc)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUDDY_BACKUP_SUBTREE

public static final String BUDDY_BACKUP_SUBTREE
Constants representng the buddy backup subtree

See Also:
Constant Field Values

BUDDY_BACKUP_SUBTREE_FQN

public static final Fqn BUDDY_BACKUP_SUBTREE_FQN
Constructor Detail

BuddyManager

public BuddyManager()

BuddyManager

public BuddyManager(BuddyReplicationConfig config)
Method Detail

injectDependencies

public void injectDependencies(CacheSPI cache,
                               Configuration configuration,
                               RegionManager regionManager,
                               StateTransferManager stateTransferManager,
                               RPCManager rpcManager,
                               Notifier notifier,
                               CommandsFactory factory,
                               DataContainer dataContainer,
                               BuddyFqnTransformer transformer)

getConfig

public BuddyReplicationConfig getConfig()

createBuddyLocator

protected BuddyLocator createBuddyLocator(BuddyReplicationConfig.BuddyLocatorConfig config)
                                   throws ClassNotFoundException,
                                          IllegalAccessException,
                                          InstantiationException
Throws:
ClassNotFoundException
IllegalAccessException
InstantiationException

createDefaultBuddyLocator

protected BuddyLocator createDefaultBuddyLocator()

isEnabled

public boolean isEnabled()

getBuddyPoolName

public String getBuddyPoolName()

stop

public void stop()
Stops the buddy manager and the related async thread.


init

public void init()
          throws CacheException
Throws:
CacheException

isAutoDataGravitation

public boolean isAutoDataGravitation()

isDataGravitationRemoveOnFind

public boolean isDataGravitationRemoveOnFind()

isDataGravitationSearchBackupTrees

public boolean isDataGravitationSearchBackupTrees()

getBuddyCommunicationTimeout

public int getBuddyCommunicationTimeout()

handlePoolNameBroadcast

public void handlePoolNameBroadcast(org.jgroups.Address address,
                                    String poolName)
Called by CacheImpl._remoteAnnounceBuddyPoolName(Address address, String buddyPoolName) when a view change occurs and caches need to inform the cluster of which buddy pool it is in.


handleRemoveFromBuddyGroup

public void handleRemoveFromBuddyGroup(String groupName)
                                throws BuddyNotInitException
Called by CacheImpl._remoteRemoveFromBuddyGroup(String groupName) when a method call for this is received from a remote cache.

Throws:
BuddyNotInitException

handleAssignToBuddyGroup

public void handleAssignToBuddyGroup(BuddyGroup newGroup,
                                     Map<Fqn,byte[]> state)
                              throws Exception
Called by AssignToBuddyGroupCommand thic command is received from a remote cache.

Parameters:
newGroup - the buddy group
state - Map of any state from the DataOwner. Cannot be null.
Throws:
Exception

getBackupDataOwners

public List<org.jgroups.Address> getBackupDataOwners()
Returns a List identifying the DataOwner for each buddy group for which this node serves as a backup node.


getBuddyAddresses

public List<org.jgroups.Address> getBuddyAddresses()
Returns a list of buddies for which this instance is Data Owner. List excludes self. Used by the BaseRPCInterceptor when deciding who to replicate to.


getBuddyAddressesAsVector

public Vector<org.jgroups.Address> getBuddyAddressesAsVector()
Created as an optimisation for JGroups, which uses vectors.

Since:
2.2.0

getMembersOutsideBuddyGroup

public List<org.jgroups.Address> getMembersOutsideBuddyGroup()

transformFqns

public VisitableCommand transformFqns(VisitableCommand call)
See Also:
Fqn2BuddyFqnVisitor

transformReplicateCommand

public ReplicateCommand transformReplicateCommand(ReplicateCommand rc)

getBuddyGroup

public String getBuddyGroup()

getBuddyGroupsIParticipateIn

public String getBuddyGroupsIParticipateIn()


Copyright © 2009 JBoss, a division of Red Hat. All Rights Reserved.