org.apache.hadoop.hbase.zookeeper
Class RootRegionTracker

java.lang.Object
  extended by org.apache.hadoop.hbase.zookeeper.ZooKeeperListener
      extended by org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker
          extended by org.apache.hadoop.hbase.zookeeper.RootRegionTracker

@InterfaceAudience.Private
public class RootRegionTracker
extends ZooKeeperNodeTracker

Tracks the root region server location node in zookeeper. Root region location is set by RegionServerServices. This class has a watcher on the root location and notices changes.


Field Summary
 
Fields inherited from class org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker
abortable, node
 
Fields inherited from class org.apache.hadoop.hbase.zookeeper.ZooKeeperListener
watcher
 
Constructor Summary
RootRegionTracker(ZooKeeperWatcher watcher, Abortable abortable)
          Creates a root region location tracker.
 
Method Summary
static ServerName blockUntilAvailable(ZooKeeperWatcher zkw, long timeout)
          Wait until the root region is available.
static void deleteRootLocation(ZooKeeperWatcher zookeeper)
          Deletes the location of -ROOT- in ZooKeeper.
 ServerName getRootRegionLocation()
          Gets the root region location, if available.
static ServerName getRootRegionLocation(ZooKeeperWatcher zkw)
          Gets the root region location, if available.
 boolean isLocationAvailable()
          Checks if the root region location is available.
static void setRootLocation(ZooKeeperWatcher zookeeper, ServerName location)
          Sets the location of -ROOT- in ZooKeeper to the specified server address.
 ServerName waitRootRegionLocation(long timeout)
          Gets the root region location, if available, and waits for up to the specified timeout if not immediately available.
 
Methods inherited from class org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker
blockUntilAvailable, blockUntilAvailable, checkIfBaseNodeAvailable, getData, getNode, nodeCreated, nodeDataChanged, nodeDeleted, start, stop
 
Methods inherited from class org.apache.hadoop.hbase.zookeeper.ZooKeeperListener
nodeChildrenChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RootRegionTracker

public RootRegionTracker(ZooKeeperWatcher watcher,
                         Abortable abortable)
Creates a root region location tracker.

After construction, use ZooKeeperNodeTracker.start() to kick off tracking.

Parameters:
watcher -
abortable -
Method Detail

isLocationAvailable

public boolean isLocationAvailable()
Checks if the root region location is available.

Returns:
true if root region location is available, false if not

getRootRegionLocation

public ServerName getRootRegionLocation()
                                 throws InterruptedException
Gets the root region location, if available. Does not block. Sets a watcher.

Returns:
server name or null if we failed to get the data.
Throws:
InterruptedException

getRootRegionLocation

public static ServerName getRootRegionLocation(ZooKeeperWatcher zkw)
                                        throws org.apache.zookeeper.KeeperException
Gets the root region location, if available. Does not block. Does not set a watcher (In this regard it differs from getRootRegionLocation().

Parameters:
zkw -
Returns:
server name or null if we failed to get the data.
Throws:
org.apache.zookeeper.KeeperException

waitRootRegionLocation

public ServerName waitRootRegionLocation(long timeout)
                                  throws InterruptedException
Gets the root region location, if available, and waits for up to the specified timeout if not immediately available. Given the zookeeper notification could be delayed, we will try to get the latest data.

Parameters:
timeout - maximum time to wait, in millis
Returns:
server name for server hosting root region formatted as per ServerName, or null if none available
Throws:
InterruptedException - if interrupted while waiting

setRootLocation

public static void setRootLocation(ZooKeeperWatcher zookeeper,
                                   ServerName location)
                            throws org.apache.zookeeper.KeeperException
Sets the location of -ROOT- in ZooKeeper to the specified server address.

Parameters:
zookeeper - zookeeper reference
location - The server hosting -ROOT-
Throws:
org.apache.zookeeper.KeeperException - unexpected zookeeper exception

deleteRootLocation

public static void deleteRootLocation(ZooKeeperWatcher zookeeper)
                               throws org.apache.zookeeper.KeeperException
Deletes the location of -ROOT- in ZooKeeper.

Parameters:
zookeeper - zookeeper reference
Throws:
org.apache.zookeeper.KeeperException - unexpected zookeeper exception

blockUntilAvailable

public static ServerName blockUntilAvailable(ZooKeeperWatcher zkw,
                                             long timeout)
                                      throws InterruptedException
Wait until the root region is available.

Parameters:
zkw -
timeout -
Returns:
ServerName or null if we timed out.
Throws:
InterruptedException


Copyright © 2013 The Apache Software Foundation. All Rights Reserved.