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

class FlatLedgerManager extends AbstractZkLedgerManager
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'.

  • Field Details

    • LOG

      static final org.slf4j.Logger LOG
  • Constructor Details

    • FlatLedgerManager

      public FlatLedgerManager(AbstractConfiguration conf, org.apache.zookeeper.ZooKeeper zk)
      Constructor.
      Parameters:
      conf - Configuration object
      zk - ZooKeeper Client Handle
      Throws:
      IOException - when version is not compatible
  • Method Details

    • getLedgerPath

      public String getLedgerPath(long ledgerId)
      Description copied from class: AbstractZkLedgerManager
      Get the znode path that is used to store ledger metadata.
      Specified by:
      getLedgerPath in class AbstractZkLedgerManager
      Parameters:
      ledgerId - Ledger ID
      Returns:
      ledger node path
    • getLedgerId

      public long getLedgerId(String nodeName) throws IOException
      Description copied from class: AbstractZkLedgerManager
      Get ledger id from its znode ledger path.
      Specified by:
      getLedgerId in class AbstractZkLedgerManager
      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: LedgerManager
      Loop 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 ledger
      finalCb - Callback triggered after all ledgers are processed
      ctx - Context of final callback
      successRc - Success RC code passed to finalCb when callback
      failureRc - Failure RC code passed to finalCb when exceptions occurred.
    • getLedgerRanges

      public LedgerManager.LedgerRangeIterator getLedgerRanges(long zkOpTimeoutMs)
      Description copied from interface: LedgerManager
      Loop 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

      protected String getLedgerParentNodeRegex()
      Description copied from class: AbstractZkLedgerManager
      regex expression for name of top level parent znode for ledgers (in HierarchicalLedgerManager) or znode of a ledger (in FlatLedgerManager).
      Specified by:
      getLedgerParentNodeRegex in class AbstractZkLedgerManager
      Returns: