org.apache.hadoop.hbase.master
Class ServerManager

java.lang.Object
  extended by org.apache.hadoop.hbase.master.ServerManager

public class ServerManager
extends Object

The ServerManager class manages info about region servers - HServerInfo, load numbers, dying servers, etc.


Constructor Summary
ServerManager(HMaster master)
          Constructor.
 
Method Summary
 boolean canAssignUserRegions()
           
 double getAverageLoad()
          Compute the average load across all region servers.
 HServerInfo getHServerInfo(HServerAddress hsa)
           
 SortedMap<HServerLoad,Set<String>> getLoadToServers()
           
 HServerInfo getServerInfo(String name)
           
 Map<String,HServerLoad> getServersToLoad()
           
 Map<String,HServerInfo> getServersToServerInfo()
           
 boolean isDead(String serverName)
           
 void notifyServers()
          Wakes up threads waiting on serversToServerInfo
 int numServers()
           
 void processRegionClose(HRegionInfo region)
           
 void processRegionOpen(HServerInfo serverInfo, HRegionInfo region, ArrayList<HMsg> returnMsgs)
           
 void recordNewServer(HServerInfo info)
          Adds the HSI to the RS list and creates an empty load
 void setMinimumServerCount(int minimumServerCount)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServerManager

public ServerManager(HMaster master)
Constructor.

Parameters:
master -
Method Detail

recordNewServer

public void recordNewServer(HServerInfo info)
Adds the HSI to the RS list and creates an empty load

Parameters:
info - The region server informations

processRegionOpen

public void processRegionOpen(HServerInfo serverInfo,
                              HRegionInfo region,
                              ArrayList<HMsg> returnMsgs)

processRegionClose

public void processRegionClose(HRegionInfo region)

getAverageLoad

public double getAverageLoad()
Compute the average load across all region servers. Currently, this uses a very naive computation - just uses the number of regions being served, ignoring stats about number of requests.

Returns:
the average load

numServers

public int numServers()
Returns:
the number of active servers

getServerInfo

public HServerInfo getServerInfo(String name)
Parameters:
name - server name
Returns:
HServerInfo for the given server address

getServersToServerInfo

public Map<String,HServerInfo> getServersToServerInfo()
Returns:
Read-only map of servers to serverinfo.

getHServerInfo

public HServerInfo getHServerInfo(HServerAddress hsa)
Parameters:
hsa -
Returns:
The HServerInfo whose HServerAddress is hsa or null if nothing found.

getServersToLoad

public Map<String,HServerLoad> getServersToLoad()
Returns:
Read-only map of servers to load.

getLoadToServers

public SortedMap<HServerLoad,Set<String>> getLoadToServers()
Returns:
Read-only map of load to servers.

notifyServers

public void notifyServers()
Wakes up threads waiting on serversToServerInfo


isDead

public boolean isDead(String serverName)
Parameters:
serverName -
Returns:
true if server is dead

canAssignUserRegions

public boolean canAssignUserRegions()

setMinimumServerCount

public void setMinimumServerCount(int minimumServerCount)


Copyright © 2010 Apache Software Foundation. All Rights Reserved.