Package org.apache.bookkeeper.meta
Class HierarchicalLedgerManager
java.lang.Object
org.apache.bookkeeper.meta.AbstractZkLedgerManager
org.apache.bookkeeper.meta.AbstractHierarchicalLedgerManager
org.apache.bookkeeper.meta.HierarchicalLedgerManager
- All Implemented Interfaces:
Closeable,AutoCloseable,LedgerManager,org.apache.zookeeper.Watcher
HierarchicalLedgerManager makes use of both LongHierarchicalLedgerManager and LegacyHierarchicalLedgerManager
to extend the 31-bit ledger id range of the LegacyHierarchicalLedgerManager to that of the
LongHierarchicalLedgerManager while remaining backwards-compatible with the legacy manager.
In order to achieve backwards-compatibility, the HierarchicalLedgerManager forwards requests relating to ledger IDs which are < Integer.MAX_INT to the LegacyHierarchicalLedgerManager. The new 5-part directory structure will not appear until a ledger with an ID >= Integer.MAX_INT is created.
-
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
FieldsModifier and TypeFieldDescription(package private) LegacyHierarchicalLedgerManager(package private) static final org.slf4j.Logger(package private) LongHierarchicalLedgerManagerFields inherited from class org.apache.bookkeeper.meta.AbstractZkLedgerManager
conf, ledgerRootPath, listeners, scheduler, zk, ZK_CONNECT_BACKOFF_MS -
Constructor Summary
ConstructorsConstructorDescriptionHierarchicalLedgerManager(AbstractConfiguration conf, org.apache.zookeeper.ZooKeeper zk) -
Method Summary
Modifier and TypeMethodDescriptionvoidasyncProcessLedgers(BookkeeperInternalCallbacks.Processor<Long> processor, org.apache.zookeeper.AsyncCallback.VoidCallback finalCb, Object context, int successRc, int failureRc) Loop to process all ledgers.voidclose()protected longgetLedgerId(String ledgerPath) 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.AbstractHierarchicalLedgerManager
asyncProcessLevelNodes, getLedgerId, ledgerListToSetMethods inherited from class org.apache.bookkeeper.meta.AbstractZkLedgerManager
asyncProcessLedgersInSingleNode, createLedgerMetadata, isLeadgerIdGeneratorZnode, isLedgerParentNode, isSpecialZnode, process, readLedgerMetadata, readLedgerMetadata, registerLedgerMetadataListener, removeLedgerMetadata, unregisterLedgerMetadataListener, writeLedgerMetadata
-
Field Details
-
LOG
static final org.slf4j.Logger LOG -
legacyLM
LegacyHierarchicalLedgerManager legacyLM -
longLM
-
-
Constructor Details
-
HierarchicalLedgerManager
-
-
Method Details
-
asyncProcessLedgers
public void asyncProcessLedgers(BookkeeperInternalCallbacks.Processor<Long> processor, org.apache.zookeeper.AsyncCallback.VoidCallback finalCb, Object context, 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 processedcontext- Context of final callbacksuccessRc- Success RC code passed to finalCb when callbackfailureRc- Failure RC code passed to finalCb when exceptions occurred.
-
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:
ledgerPath- Ledger path to store metadata- Returns:
- ledger id
- Throws:
IOException- when the ledger path is invalid
-
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:
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classAbstractZkLedgerManager
-