org.neo4j.kernel.ha.zookeeper
Class AbstractZooKeeperManager

java.lang.Object
  extended by org.neo4j.kernel.ha.zookeeper.AbstractZooKeeperManager
Direct Known Subclasses:
ZooClient, ZooKeeperClusterClient

public abstract class AbstractZooKeeperManager
extends Object

Contains basic functionality for a ZooKeeper manager, f.ex. how to get the current master in the cluster.


Field Summary
protected  org.neo4j.helpers.Pair<Master,Machine> cachedMaster
           
protected  int clientLockReadTimeout
           
protected  int clientReadTimeout
           
protected static String HA_SERVERS_CHILD
           
protected  int maxConcurrentChannelsPerSlave
           
protected  org.neo4j.kernel.impl.util.StringLogger msgLog
           
protected static Master NO_MASTER
           
static org.neo4j.helpers.Pair<Master,Machine> NO_MASTER_MACHINE_PAIR
           
 
Constructor Summary
AbstractZooKeeperManager(String servers, org.neo4j.com.StoreIdGetter storeIdGetter, org.neo4j.kernel.impl.util.StringLogger msgLog, int clientReadTimeout, int clientLockReadTimeout, int maxConcurrentChannelsPerSlave, int sessionTimeout)
           
 
Method Summary
protected  String asRootPath(org.neo4j.kernel.impl.nioneo.store.StoreId storeId)
           
protected  org.neo4j.helpers.Pair<Master,Machine> bootstrap()
           
protected  Map<Integer,ZooKeeperMachine> getAllMachines(boolean wait)
           
protected  Map<Integer,ZooKeeperMachine> getAllMachines(boolean wait, org.neo4j.kernel.ha.zookeeper.AbstractZooKeeperManager.WaitMode mode)
           
 org.neo4j.helpers.Pair<Master,Machine> getCachedMaster()
           
protected  org.neo4j.kernel.impl.nioneo.store.StoreId getClusterStoreId(org.apache.zookeeper.ZooKeeper keeper, String clusterName)
           
protected  String getHaServer(int machineId, boolean wait)
           
protected  ZooKeeperMachine getMasterBasedOn(Collection<ZooKeeperMachine> machines)
           
protected  Master getMasterClientToMachine(Machine master)
           
protected  org.neo4j.helpers.Pair<Master,Machine> getMasterFromZooKeeper(boolean wait, boolean allowChange)
          Tries to discover the master from the zookeeper information.
protected abstract  int getMyMachineId()
           
abstract  String getRoot()
           
 String getServers()
           
protected  int getSessionTimeout()
           
abstract  org.apache.zookeeper.ZooKeeper getZooKeeper(boolean sync)
           
protected  void invalidateMaster()
           
protected  org.neo4j.helpers.Pair<Integer,Integer> parseChild(String child)
           
protected  org.neo4j.helpers.Pair<Long,Integer> readDataRepresentingInstance(String path)
           
protected  org.neo4j.helpers.Pair<String,Integer> readHaServer(int machineId, boolean wait)
           
 void shutdown()
           
 void waitForSyncConnected()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HA_SERVERS_CHILD

protected static final String HA_SERVERS_CHILD
See Also:
Constant Field Values

cachedMaster

protected volatile org.neo4j.helpers.Pair<Master,Machine> cachedMaster

msgLog

protected final org.neo4j.kernel.impl.util.StringLogger msgLog

maxConcurrentChannelsPerSlave

protected final int maxConcurrentChannelsPerSlave

clientReadTimeout

protected final int clientReadTimeout

clientLockReadTimeout

protected final int clientLockReadTimeout

NO_MASTER

protected static final Master NO_MASTER

NO_MASTER_MACHINE_PAIR

public static final org.neo4j.helpers.Pair<Master,Machine> NO_MASTER_MACHINE_PAIR
Constructor Detail

AbstractZooKeeperManager

public AbstractZooKeeperManager(String servers,
                                org.neo4j.com.StoreIdGetter storeIdGetter,
                                org.neo4j.kernel.impl.util.StringLogger msgLog,
                                int clientReadTimeout,
                                int clientLockReadTimeout,
                                int maxConcurrentChannelsPerSlave,
                                int sessionTimeout)
Method Detail

asRootPath

protected String asRootPath(org.neo4j.kernel.impl.nioneo.store.StoreId storeId)

getClusterStoreId

protected org.neo4j.kernel.impl.nioneo.store.StoreId getClusterStoreId(org.apache.zookeeper.ZooKeeper keeper,
                                                                       String clusterName)

getSessionTimeout

protected int getSessionTimeout()

getZooKeeper

public abstract org.apache.zookeeper.ZooKeeper getZooKeeper(boolean sync)

getRoot

public abstract String getRoot()

parseChild

protected org.neo4j.helpers.Pair<Integer,Integer> parseChild(String child)

readDataRepresentingInstance

protected org.neo4j.helpers.Pair<Long,Integer> readDataRepresentingInstance(String path)
                                                                     throws InterruptedException,
                                                                            org.apache.zookeeper.KeeperException
Throws:
InterruptedException
org.apache.zookeeper.KeeperException

invalidateMaster

protected void invalidateMaster()

getMasterFromZooKeeper

protected org.neo4j.helpers.Pair<Master,Machine> getMasterFromZooKeeper(boolean wait,
                                                                        boolean allowChange)
Tries to discover the master from the zookeeper information. Will return a Pair of a Master and the Machine it resides on. If the new master is different than the current then the current is invalidated and if allowChange is set to true then the a connection to the new master is established otherwise a NO_MASTER is returned.

Parameters:
wait - Whether to wait for a sync connected event
allowChange - If to connect to the new master
Returns:
The master machine pair, possibly a NO_MASTER_MACHINE_PAIR

bootstrap

protected org.neo4j.helpers.Pair<Master,Machine> bootstrap()

getMasterClientToMachine

protected Master getMasterClientToMachine(Machine master)

getMyMachineId

protected abstract int getMyMachineId()

getCachedMaster

public org.neo4j.helpers.Pair<Master,Machine> getCachedMaster()

getMasterBasedOn

protected ZooKeeperMachine getMasterBasedOn(Collection<ZooKeeperMachine> machines)

getAllMachines

protected Map<Integer,ZooKeeperMachine> getAllMachines(boolean wait)

getAllMachines

protected Map<Integer,ZooKeeperMachine> getAllMachines(boolean wait,
                                                       org.neo4j.kernel.ha.zookeeper.AbstractZooKeeperManager.WaitMode mode)

getHaServer

protected String getHaServer(int machineId,
                             boolean wait)

readHaServer

protected org.neo4j.helpers.Pair<String,Integer> readHaServer(int machineId,
                                                              boolean wait)

shutdown

public void shutdown()

waitForSyncConnected

public final void waitForSyncConnected()

getServers

public String getServers()


Copyright © 2002-2012 The Neo4j Graph Database Project. All Rights Reserved.