Class SearchCluster

java.lang.Object
com.yahoo.search.dispatch.searchcluster.SearchCluster
All Implemented Interfaces:
NodeManager<Node>

public class SearchCluster extends Object implements NodeManager<Node>
A model of a search cluster we might want to dispatch queries to.
Author:
bratseth
  • Constructor Details

    • SearchCluster

      public SearchCluster(String clusterId, double minActivedocsPercentage, Collection<Node> nodes, com.yahoo.container.handler.VipStatus vipStatus, PingFactory pingFactory)
    • SearchCluster

      public SearchCluster(String clusterId, SearchGroupsImpl groups, com.yahoo.container.handler.VipStatus vipStatus, PingFactory pingFactory)
  • Method Details

    • name

      public String name()
      Description copied from interface: NodeManager
      Name to identify Nodemanager
      Specified by:
      name in interface NodeManager<Node>
    • getVipStatus

      public com.yahoo.container.handler.VipStatus getVipStatus()
    • addMonitoring

      public void addMonitoring(ClusterMonitor<Node> clusterMonitor)
    • groupList

      public SearchGroups groupList()
    • group

      public Group group(int id)
    • groupsWithSufficientCoverage

      public int groupsWithSufficientCoverage()
    • localCorpusDispatchTarget

      public Optional<Node> localCorpusDispatchTarget()
      Returns the single, local node we should dispatch queries directly to, or empty if we should not dispatch directly.
    • working

      public void working(Node node)
      Called by the cluster monitor when node state changes to working
      Specified by:
      working in interface NodeManager<Node>
    • failed

      public void failed(Node node)
      Called by the cluster monitor when node state changes to failed
      Specified by:
      failed in interface NodeManager<Node>
    • hasInformationAboutAllNodes

      public boolean hasInformationAboutAllNodes()
    • nonWorkingNodeCount

      public long nonWorkingNodeCount()
    • ping

      public void ping(ClusterMonitor clusterMonitor, Node node, Executor executor)
      Used by the cluster monitor to manage node status
      Specified by:
      ping in interface NodeManager<Node>
    • pingIterationCompleted

      public void pingIterationCompleted()
      Update statistics after a round of issuing pings. Note that this doesn't wait for pings to return, so it will typically accumulate data from last rounds pinging, or potentially (although unlikely) some combination of new and old data.
      Specified by:
      pingIterationCompleted in interface NodeManager<Node>