Package com.yahoo.search.cluster
Class ClusterMonitor<T>
- java.lang.Object
-
- com.yahoo.search.cluster.ClusterMonitor<T>
-
public class ClusterMonitor<T> extends java.lang.Object
Monitors of a cluster of remote nodes. The monitor uses an internal thread for node monitoring. All public methods of this class are multithread safe.- Author:
- bratseth
-
-
Constructor Summary
Constructors Constructor Description ClusterMonitor(NodeManager<T> manager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(T node, boolean internal)
Adds a new node for monitoring.void
failed(T node, ErrorMessage error)
Called from ClusterSearcher/NodeManager when a node failedMonitorConfiguration
getConfiguration()
Returns the configuration of this cluster monitorBaseNodeMonitor<T>
getNodeMonitor(T node)
Returns the monitor of the given node, or null if this node has not been addedjava.util.Iterator<BaseNodeMonitor<T>>
nodeMonitorIterator()
Returns a thread-safe snapshot of the NodeMonitors of all added nodesjava.util.List<BaseNodeMonitor<T>>
nodeMonitors()
Returns a thread-safe snapshot of the NodeMonitors of all added nodesvoid
ping(java.util.concurrent.Executor executor)
Ping all nodes which needs pinging to discover state changesvoid
responded(T node)
Called when a node respondedvoid
shutdown()
Must be called when this goes out of use
-
-
-
Constructor Detail
-
ClusterMonitor
public ClusterMonitor(NodeManager<T> manager)
-
-
Method Detail
-
getConfiguration
public MonitorConfiguration getConfiguration()
Returns the configuration of this cluster monitor
-
add
public void add(T node, boolean internal)
Adds a new node for monitoring. The object representing the node must- Have a sensible toString
- Have a sensible identity (equals and hashCode)
- Parameters:
node
- the object representing the nodeinternal
- whether or not this node is internal to this cluster
-
getNodeMonitor
public BaseNodeMonitor<T> getNodeMonitor(T node)
Returns the monitor of the given node, or null if this node has not been added
-
failed
public void failed(T node, ErrorMessage error)
Called from ClusterSearcher/NodeManager when a node failed
-
responded
public void responded(T node)
Called when a node responded
-
ping
public void ping(java.util.concurrent.Executor executor)
Ping all nodes which needs pinging to discover state changes
-
nodeMonitorIterator
public java.util.Iterator<BaseNodeMonitor<T>> nodeMonitorIterator()
Returns a thread-safe snapshot of the NodeMonitors of all added nodes
-
nodeMonitors
public java.util.List<BaseNodeMonitor<T>> nodeMonitors()
Returns a thread-safe snapshot of the NodeMonitors of all added nodes
-
shutdown
public void shutdown()
Must be called when this goes out of use
-
-