Class FlatLedgerManager

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.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 Detail

      • LOG

        static final org.slf4j.Logger LOG
    • Constructor Detail

      • FlatLedgerManager

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

      • getLedgerPath

        public java.lang.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​(java.lang.String nodeName)
                         throws java.io.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:
        java.io.IOException - when the ledger path is invalid
      • asyncProcessLedgers

        public void asyncProcessLedgers​(BookkeeperInternalCallbacks.Processor<java.lang.Long> processor,
                                        org.apache.zookeeper.AsyncCallback.VoidCallback finalCb,
                                        java.lang.Object ctx,
                                        int successRc,
                                        int failureRc)
        Description copied from interface: LedgerManager
        Loop to process all ledgers.

          After all ledgers were processed, finalCb will be triggerred:
        • if all ledgers are processed done with OK, success rc will be passed to finalCb.
        • if some ledgers are prcoessed 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 occured.
      • 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 java.lang.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: