Package org.apache.bookkeeper.meta
Class FlatLedgerManager
java.lang.Object
org.apache.bookkeeper.meta.AbstractZkLedgerManager
org.apache.bookkeeper.meta.FlatLedgerManager
- All Implemented Interfaces:
Closeable,AutoCloseable,LedgerManager,org.apache.zookeeper.Watcher
Manage all ledgers in a single zk node.
All ledgers' metadata are put in a single zk node, created using zk sequential node. Each ledger node is prefixed with 'L'.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.bookkeeper.meta.AbstractZkLedgerManager
AbstractZkLedgerManager.CancelWatchLedgerMetadataTask, AbstractZkLedgerManager.ReadLedgerMetadataTaskNested classes/interfaces inherited from interface org.apache.bookkeeper.meta.LedgerManager
LedgerManager.LedgerRange, LedgerManager.LedgerRangeIteratorNested classes/interfaces inherited from interface org.apache.zookeeper.Watcher
org.apache.zookeeper.Watcher.Event, org.apache.zookeeper.Watcher.WatcherType -
Field Summary
FieldsFields inherited from class org.apache.bookkeeper.meta.AbstractZkLedgerManager
conf, ledgerRootPath, listeners, scheduler, zk, ZK_CONNECT_BACKOFF_MS -
Constructor Summary
ConstructorsConstructorDescriptionFlatLedgerManager(AbstractConfiguration conf, org.apache.zookeeper.ZooKeeper zk) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidasyncProcessLedgers(BookkeeperInternalCallbacks.Processor<Long> processor, org.apache.zookeeper.AsyncCallback.VoidCallback finalCb, Object ctx, int successRc, int failureRc) Loop to process all ledgers.longgetLedgerId(String nodeName) Get ledger id from its znode ledger path.protected Stringregex expression for name of top level parent znode for ledgers (in HierarchicalLedgerManager) or znode of a ledger (in FlatLedgerManager).getLedgerPath(long ledgerId) Get the znode path that is used to store ledger metadata.getLedgerRanges(long zkOpTimeoutMs) Loop to scan a range of metadata from metadata storage.Methods inherited from class org.apache.bookkeeper.meta.AbstractZkLedgerManager
asyncProcessLedgersInSingleNode, close, createLedgerMetadata, isLeadgerIdGeneratorZnode, isLedgerParentNode, isSpecialZnode, ledgerListToSet, process, readLedgerMetadata, readLedgerMetadata, registerLedgerMetadataListener, removeLedgerMetadata, unregisterLedgerMetadataListener, writeLedgerMetadata
-
Field Details
-
LOG
static final org.slf4j.Logger LOG
-
-
Constructor Details
-
FlatLedgerManager
Constructor.- Parameters:
conf- Configuration objectzk- ZooKeeper Client Handle- Throws:
IOException- when version is not compatible
-
-
Method Details
-
getLedgerPath
Description copied from class:AbstractZkLedgerManagerGet the znode path that is used to store ledger metadata.- Specified by:
getLedgerPathin classAbstractZkLedgerManager- Parameters:
ledgerId- Ledger ID- Returns:
- ledger node path
-
getLedgerId
Description copied from class:AbstractZkLedgerManagerGet ledger id from its znode ledger path.- Specified by:
getLedgerIdin classAbstractZkLedgerManager- Parameters:
nodeName- Ledger path to store metadata- Returns:
- ledger id
- Throws:
IOException- when the ledger path is invalid
-
asyncProcessLedgers
public void asyncProcessLedgers(BookkeeperInternalCallbacks.Processor<Long> processor, org.apache.zookeeper.AsyncCallback.VoidCallback finalCb, Object ctx, int successRc, int failureRc) Description copied from interface:LedgerManagerLoop to process all ledgers.-
After all ledgers were processed, finalCb will be triggered:
- if all ledgers are processed done with OK, success rc will be passed to finalCb.
- if some ledgers are processed failed, failure rc will be passed to finalCb.
- Parameters:
processor- Ledger Processor to process a specific ledgerfinalCb- Callback triggered after all ledgers are processedctx- Context of final callbacksuccessRc- Success RC code passed to finalCb when callbackfailureRc- Failure RC code passed to finalCb when exceptions occurred.
-
getLedgerRanges
Description copied from interface:LedgerManagerLoop to scan a range of metadata from metadata storage.- Parameters:
zkOpTimeoutMs- Iterator considers timeout while fetching ledger-range from zk.- Returns:
- will return a iterator of the Ranges
-
getLedgerParentNodeRegex
Description copied from class:AbstractZkLedgerManagerregex expression for name of top level parent znode for ledgers (in HierarchicalLedgerManager) or znode of a ledger (in FlatLedgerManager).- Specified by:
getLedgerParentNodeRegexin classAbstractZkLedgerManager- Returns:
-