org.hibernate.search.backend.impl.jgroups
Class SlaveNodeSelector

java.lang.Object
  extended by org.hibernate.search.backend.impl.jgroups.SlaveNodeSelector
All Implemented Interfaces:
NodeSelectorStrategy

public class SlaveNodeSelector
extends Object
implements NodeSelectorStrategy

This NodeSelectorStrategy is a static configuration for the local node to avoid processing any indexing operations locally. It is assumed that some other node in the cluster will process it; which node exactly is unknown, so messages are broadcasted to the group.

There is no guarantee of processing: if no master picks up the task, the index update operation is skipped. This can be mitigated by making sure at least one master is always online; if a persistent queue is needed it's better to use the JMS backend.

This implementation matches the jgroupsSlave configuration property.

Author:
Sanne Grinovero (C) 2012 Red Hat Inc.

Constructor Summary
SlaveNodeSelector()
           
 
Method Summary
 org.jgroups.Message createMessage(byte[] data)
          Different message options can be applied using different constructors, hence we delegate Message construction to the strategy.
 boolean isIndexOwnerLocal()
          Specifies if the current (local) node should apply changes to the index.
 void setLocalAddress(org.jgroups.Address address)
          The implementation might need to know it's own address, so this is provided at channel initial connection.
 void viewAccepted(org.jgroups.View view)
          Invoked by JGroups on view change.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SlaveNodeSelector

public SlaveNodeSelector()
Method Detail

isIndexOwnerLocal

public boolean isIndexOwnerLocal()
Description copied from interface: NodeSelectorStrategy
Specifies if the current (local) node should apply changes to the index.

Specified by:
isIndexOwnerLocal in interface NodeSelectorStrategy
Returns:

setLocalAddress

public void setLocalAddress(org.jgroups.Address address)
Description copied from interface: NodeSelectorStrategy
The implementation might need to know it's own address, so this is provided at channel initial connection.

Specified by:
setLocalAddress in interface NodeSelectorStrategy
Parameters:
address - the local address

viewAccepted

public void viewAccepted(org.jgroups.View view)
Description copied from interface: NodeSelectorStrategy
Invoked by JGroups on view change. MembershipListener.viewAccepted(View)

Specified by:
viewAccepted in interface NodeSelectorStrategy
Parameters:
view - contains information on the current members of the cluster group

createMessage

public org.jgroups.Message createMessage(byte[] data)
Description copied from interface: NodeSelectorStrategy
Different message options can be applied using different constructors, hence we delegate Message construction to the strategy.

Specified by:
createMessage in interface NodeSelectorStrategy
Parameters:
data - the information to be sent to the master.
Returns:
the message to be sent.


Copyright © 2006-2012 Red Hat Middleware, LLC. All Rights Reserved