Package org.apache.bookkeeper.discover
Class ZKRegistrationManager
java.lang.Object
org.apache.bookkeeper.discover.ZKRegistrationManager
- All Implemented Interfaces:
AutoCloseable,RegistrationManager
ZooKeeper Based
RegistrationManager.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.bookkeeper.discover.RegistrationManager
RegistrationManager.RegistrationListener -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionZKRegistrationManager(ServerConfiguration conf, org.apache.zookeeper.ZooKeeper zk) ZKRegistrationManager(ServerConfiguration conf, org.apache.zookeeper.ZooKeeper zk, String ledgersRootPath) -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a listener to be triggered when an registration event occurs.protected booleancheckRegNodeAndWaitExpired(String regPath) Check existence of regPath and wait it expired if possible.voidclose()booleanformat()Do format boolean.Return the cluster instance id.getCookiePath(BookieId bookieId) Returns the CookiePath of the bookie in the ZooKeeper.booleanInitializes new cluster by creating required znodes for the cluster.booleanisBookieRegistered(BookieId bookieId) Checks if Bookie with the given BookieId is registered as readwrite or readonly bookie.booleanNukes existing cluster metadata.booleanPrepare ledgers root node, availableNode, readonly node..Versioned<byte[]>readCookie(BookieId bookieId) Read the cookie data, which will be used for verifying the integrity of the bookie environment.voidregisterBookie(BookieId bookieId, boolean readOnly, BookieServiceInfo bookieServiceInfo) Registering the bookie server as bookieId.voidremoveCookie(BookieId bookieId, Version version) Remove the cookie data.(package private) static byte[]serializeBookieServiceInfo(BookieServiceInfo bookieServiceInfo) voidunregisterBookie(BookieId bookieId, boolean readOnly) Unregistering the bookie server as bookieId.voidwriteCookie(BookieId bookieId, Versioned<byte[]> cookieData) Write the cookie data, which will be used for verifying the integrity of the bookie environment.
-
Field Details
-
bookieRegistrationPath
-
bookieReadonlyRegistrationPath
-
-
Constructor Details
-
ZKRegistrationManager
-
ZKRegistrationManager
public ZKRegistrationManager(ServerConfiguration conf, org.apache.zookeeper.ZooKeeper zk, String ledgersRootPath)
-
-
Method Details
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceRegistrationManager
-
getCookiePath
Returns the CookiePath of the bookie in the ZooKeeper.- Parameters:
bookieId- bookie id- Returns:
-
checkRegNodeAndWaitExpired
Check existence of regPath and wait it expired if possible.- Parameters:
regPath- reg node path.- Returns:
- true if regPath exists, otherwise return false
- Throws:
IOException- if can't create reg path
-
registerBookie
public void registerBookie(BookieId bookieId, boolean readOnly, BookieServiceInfo bookieServiceInfo) throws BookieException Description copied from interface:RegistrationManagerRegistering the bookie server as bookieId.- Specified by:
registerBookiein interfaceRegistrationManager- Parameters:
bookieId- bookie idreadOnly- whether to register it as writable or readonlybookieServiceInfo- information about services exposed by the Bookie- Throws:
BookieException- when fail to register a bookie.
-
serializeBookieServiceInfo
-
unregisterBookie
Description copied from interface:RegistrationManagerUnregistering the bookie server as bookieId.- Specified by:
unregisterBookiein interfaceRegistrationManager- Parameters:
bookieId- bookie idreadOnly- whether to register it as writable or readonly- Throws:
BookieException- when fail to unregister a bookie.
-
writeCookie
Description copied from interface:RegistrationManagerWrite the cookie data, which will be used for verifying the integrity of the bookie environment.- Specified by:
writeCookiein interfaceRegistrationManager- Parameters:
bookieId- bookie idcookieData- cookie data- Throws:
BookieException- when fail to write cookie
-
readCookie
Description copied from interface:RegistrationManagerRead the cookie data, which will be used for verifying the integrity of the bookie environment.- Specified by:
readCookiein interfaceRegistrationManager- Parameters:
bookieId- bookie id- Returns:
- versioned cookie data
- Throws:
BookieException- when fail to read cookie
-
removeCookie
Description copied from interface:RegistrationManagerRemove the cookie data.- Specified by:
removeCookiein interfaceRegistrationManager- Parameters:
bookieId- bookie idversion- version of the cookie data- Throws:
BookieException- when fail to remove cookie
-
getClusterInstanceId
Description copied from interface:RegistrationManagerReturn the cluster instance id.- Specified by:
getClusterInstanceIdin interfaceRegistrationManager- Returns:
- the cluster instance id.
- Throws:
BookieException
-
prepareFormat
Description copied from interface:RegistrationManagerPrepare ledgers root node, availableNode, readonly node..- Specified by:
prepareFormatin interfaceRegistrationManager- Returns:
- Returns true if old data exists, false if not.
- Throws:
Exception
-
initNewCluster
Description copied from interface:RegistrationManagerInitializes new cluster by creating required znodes for the cluster. If ledgersrootpath is already existing then it will error out.- Specified by:
initNewClusterin interfaceRegistrationManager- Returns:
- returns true if new cluster is successfully created or false if it failed to initialize.
- Throws:
Exception
-
nukeExistingCluster
Description copied from interface:RegistrationManagerNukes existing cluster metadata.- Specified by:
nukeExistingClusterin interfaceRegistrationManager- Returns:
- returns true if cluster metadata is successfully nuked or false if it failed to nuke the cluster metadata.
- Throws:
Exception
-
format
Description copied from interface:RegistrationManagerDo format boolean.- Specified by:
formatin interfaceRegistrationManager- Returns:
- Returns true if success do format, false if not.
- Throws:
Exception
-
isBookieRegistered
Description copied from interface:RegistrationManagerChecks if Bookie with the given BookieId is registered as readwrite or readonly bookie.- Specified by:
isBookieRegisteredin interfaceRegistrationManager- Parameters:
bookieId- bookie id- Returns:
- returns true if a bookie with bookieid is currently registered as readwrite or readonly bookie.
- Throws:
BookieException
-
addRegistrationListener
Description copied from interface:RegistrationManagerAdd a listener to be triggered when an registration event occurs.- Specified by:
addRegistrationListenerin interfaceRegistrationManager- Parameters:
listener- the listener to be added
-