Package org.apache.bookkeeper.meta
Class ZkLedgerIdGenerator
java.lang.Object
org.apache.bookkeeper.meta.ZkLedgerIdGenerator
- All Implemented Interfaces:
Closeable,AutoCloseable,LedgerIdGenerator
ZooKeeper based ledger id generator class, which using EPHEMERAL_SEQUENTIAL
with (ledgerIdGenPath)/ID- prefix to generate ledger id. Note
zookeeper sequential counter has a format of %10d -- that is 10 digits with 0
(zero) padding, i.e. "<path>0000000001", so ledger id space is
fundamentally limited to 9 billion.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionZkLedgerIdGenerator(org.apache.zookeeper.ZooKeeper zk, String ledgersPath, String idGenZnodeName, List<org.apache.zookeeper.data.ACL> zkAcls) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()static StringcreateLedgerPrefix(String ledgersPath, String idGenZnodeName) voidGenerate a global unique ledger id.static voidgenerateLedgerIdImpl(BookkeeperInternalCallbacks.GenericCallback<Long> cb, org.apache.zookeeper.ZooKeeper zk, String ledgerPrefix, List<org.apache.zookeeper.data.ACL> zkAcls)
-
Field Details
-
LOG
static final org.slf4j.Logger LOG -
LEDGER_ID_GEN_PREFIX
- See Also:
-
zk
final org.apache.zookeeper.ZooKeeper zk -
ledgerPrefix
-
zkAcls
-
-
Constructor Details
-
ZkLedgerIdGenerator
-
-
Method Details
-
createLedgerPrefix
-
generateLedgerId
Description copied from interface:LedgerIdGeneratorGenerate a global unique ledger id.- Specified by:
generateLedgerIdin interfaceLedgerIdGenerator- Parameters:
cb- Callback when a new ledger id is generated, return code:BKException.Code.OKif successBKException.Code.ZKExceptionwhen can't generate new ledger id
-
generateLedgerIdImpl
public static void generateLedgerIdImpl(BookkeeperInternalCallbacks.GenericCallback<Long> cb, org.apache.zookeeper.ZooKeeper zk, String ledgerPrefix, List<org.apache.zookeeper.data.ACL> zkAcls) -
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-