Package com.yahoo.search.cluster
Class ClusterMonitor<T>
- java.lang.Object
-
- com.yahoo.search.cluster.ClusterMonitor<T>
-
public class ClusterMonitor<T> extends 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)
Deprecated.It is not advised to start the monitoring thread in the constructor.ClusterMonitor(NodeManager<T> manager, boolean startPingThread)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated 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)
Deprecated, for removal: This API element is subject to removal in a future version.Will be removed in Vespa 8.boolean
isClosed()
Iterator<BaseNodeMonitor<T>>
nodeMonitorIterator()
Returns a thread-safe snapshot of the NodeMonitors of all added nodesList<BaseNodeMonitor<T>>
nodeMonitors()
Returns a thread-safe snapshot of the NodeMonitors of all added nodesvoid
ping(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 usevoid
start()
-
-
-
Constructor Detail
-
ClusterMonitor
@Deprecated public ClusterMonitor(NodeManager<T> manager)
Deprecated.It is not advised to start the monitoring thread in the constructor. Use ClusterMonitor(NodeManager manager, false) and explicit start().
-
ClusterMonitor
public ClusterMonitor(NodeManager<T> manager, boolean startPingThread)
-
-
Method Detail
-
start
public void start()
-
getConfiguration
public MonitorConfiguration getConfiguration()
Returns the configuration of this cluster monitor
-
isClosed
public boolean isClosed()
-
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
@Deprecated(forRemoval=true, since="7.537") public BaseNodeMonitor<T> getNodeMonitor(T node)
Deprecated, for removal: This API element is subject to removal in a future version.Will be removed in Vespa 8.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(Executor executor)
Ping all nodes which needs pinging to discover state changes
-
nodeMonitorIterator
public Iterator<BaseNodeMonitor<T>> nodeMonitorIterator()
Returns a thread-safe snapshot of the NodeMonitors of all added nodes
-
nodeMonitors
public 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
-
-