Class ManagedLedgerFactoryImpl
- java.lang.Object
-
- org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl
-
- All Implemented Interfaces:
ManagedLedgerFactory
public class ManagedLedgerFactoryImpl extends java.lang.Object implements ManagedLedgerFactory
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceManagedLedgerFactoryImpl.BookkeeperFactoryForCustomEnsemblePlacementPolicyFactory to create Bookkeeper-client for a given ensemblePlacementPolicy.
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.CompletableFuture<ManagedLedgerImpl>>ledgersprotected ManagedLedgerFactoryMBeanImplmbeanprotected java.util.concurrent.ConcurrentHashMap<java.lang.String,org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl.PendingInitializeManagedLedger>pendingInitializeLedgersprotected org.apache.bookkeeper.common.util.OrderedSchedulerscheduledExecutorstatic intStatsPeriodSeconds
-
Constructor Summary
Constructors Constructor Description ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.client.BookKeeper bookKeeper)ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.client.BookKeeper bookKeeper, ManagedLedgerFactoryConfig config)ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.conf.ClientConfiguration bkClientConfiguration)ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.conf.ClientConfiguration bkClientConfiguration, ManagedLedgerFactoryConfig config)ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, ManagedLedgerFactoryImpl.BookkeeperFactoryForCustomEnsemblePlacementPolicy bookKeeperGroupFactory, ManagedLedgerFactoryConfig config)ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, ManagedLedgerFactoryImpl.BookkeeperFactoryForCustomEnsemblePlacementPolicy bookKeeperGroupFactory, ManagedLedgerFactoryConfig config, org.apache.bookkeeper.stats.StatsLogger statsLogger)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidasyncDelete(java.lang.String name, AsyncCallbacks.DeleteLedgerCallback callback, java.lang.Object ctx)Delete a managed ledger.voidasyncGetManagedLedgerInfo(java.lang.String name, AsyncCallbacks.ManagedLedgerInfoCallback callback, java.lang.Object ctx)Asynchronously get the current metadata info for a managed ledger.voidasyncOpen(java.lang.String name, AsyncCallbacks.OpenLedgerCallback callback, java.lang.Object ctx)Asynchronous open method.voidasyncOpen(java.lang.String name, ManagedLedgerConfig config, AsyncCallbacks.OpenLedgerCallback callback, java.util.function.Supplier<java.lang.Boolean> mlOwnershipChecker, java.lang.Object ctx)Asynchronous open method.voidasyncOpenReadOnlyCursor(java.lang.String managedLedgerName, Position startPosition, ManagedLedgerConfig config, AsyncCallbacks.OpenReadOnlyCursorCallback callback, java.lang.Object ctx)Open aReadOnlyCursorpositioned to the earliest entry for the specified managed ledgervoiddelete(java.lang.String name)Delete a managed ledger.org.apache.bookkeeper.client.BookKeepergetBookKeeper()ManagedLedgerFactoryMXBeangetCacheStats()ManagedLedgerFactoryConfiggetConfig()EntryCacheManagergetEntryCacheManager()ManagedLedgerInfogetManagedLedgerInfo(java.lang.String name)Get the current metadata info for a managed ledger.java.util.Map<java.lang.String,ManagedLedgerImpl>getManagedLedgers()Helper for getting stats.MetaStoregetMetaStore()ManagedLedgeropen(java.lang.String name)Open a managed ledger.ManagedLedgeropen(java.lang.String name, ManagedLedgerConfig config)Open a managed ledger.ReadOnlyCursoropenReadOnlyCursor(java.lang.String managedLedgerName, Position startPosition, ManagedLedgerConfig config)Open aReadOnlyCursorpositioned to the earliest entry for the specified managed ledgervoidshutdown()Releases all the resources maintained by the ManagedLedgerFactory.
-
-
-
Field Detail
-
scheduledExecutor
protected final org.apache.bookkeeper.common.util.OrderedScheduler scheduledExecutor
-
mbean
protected final ManagedLedgerFactoryMBeanImpl mbean
-
ledgers
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.CompletableFuture<ManagedLedgerImpl>> ledgers
-
pendingInitializeLedgers
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl.PendingInitializeManagedLedger> pendingInitializeLedgers
-
StatsPeriodSeconds
public static final int StatsPeriodSeconds
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ManagedLedgerFactoryImpl
public ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.conf.ClientConfiguration bkClientConfiguration) throws java.lang.Exception- Throws:
java.lang.Exception
-
ManagedLedgerFactoryImpl
public ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.conf.ClientConfiguration bkClientConfiguration, ManagedLedgerFactoryConfig config) throws java.lang.Exception- Throws:
java.lang.Exception
-
ManagedLedgerFactoryImpl
public ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.client.BookKeeper bookKeeper) throws java.lang.Exception- Throws:
java.lang.Exception
-
ManagedLedgerFactoryImpl
public ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, org.apache.bookkeeper.client.BookKeeper bookKeeper, ManagedLedgerFactoryConfig config) throws java.lang.Exception- Throws:
java.lang.Exception
-
ManagedLedgerFactoryImpl
public ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, ManagedLedgerFactoryImpl.BookkeeperFactoryForCustomEnsemblePlacementPolicy bookKeeperGroupFactory, ManagedLedgerFactoryConfig config) throws java.lang.Exception- Throws:
java.lang.Exception
-
ManagedLedgerFactoryImpl
public ManagedLedgerFactoryImpl(org.apache.pulsar.metadata.api.MetadataStore metadataStore, ManagedLedgerFactoryImpl.BookkeeperFactoryForCustomEnsemblePlacementPolicy bookKeeperGroupFactory, ManagedLedgerFactoryConfig config, org.apache.bookkeeper.stats.StatsLogger statsLogger) throws java.lang.Exception- Throws:
java.lang.Exception
-
-
Method Detail
-
getManagedLedgers
public java.util.Map<java.lang.String,ManagedLedgerImpl> getManagedLedgers()
Helper for getting stats.- Returns:
-
open
public ManagedLedger open(java.lang.String name) throws java.lang.InterruptedException, ManagedLedgerException
Description copied from interface:ManagedLedgerFactoryOpen a managed ledger. If the managed ledger does not exist, a new one will be automatically created. Uses the default configuration parameters.- Specified by:
openin interfaceManagedLedgerFactory- Parameters:
name- the unique name that identifies the managed ledger- Returns:
- the managed ledger
- Throws:
ManagedLedgerExceptionjava.lang.InterruptedException
-
open
public ManagedLedger open(java.lang.String name, ManagedLedgerConfig config) throws java.lang.InterruptedException, ManagedLedgerException
Description copied from interface:ManagedLedgerFactoryOpen a managed ledger. If the managed ledger does not exist, a new one will be automatically created.- Specified by:
openin interfaceManagedLedgerFactory- Parameters:
name- the unique name that identifies the managed ledgerconfig- managed ledger configuration- Returns:
- the managed ledger
- Throws:
ManagedLedgerExceptionjava.lang.InterruptedException
-
asyncOpen
public void asyncOpen(java.lang.String name, AsyncCallbacks.OpenLedgerCallback callback, java.lang.Object ctx)Description copied from interface:ManagedLedgerFactoryAsynchronous open method.- Specified by:
asyncOpenin interfaceManagedLedgerFactory- Parameters:
name- the unique name that identifies the managed ledgercallback- callback objectctx- opaque context- See Also:
ManagedLedgerFactory.open(String)
-
asyncOpen
public void asyncOpen(java.lang.String name, ManagedLedgerConfig config, AsyncCallbacks.OpenLedgerCallback callback, java.util.function.Supplier<java.lang.Boolean> mlOwnershipChecker, java.lang.Object ctx)Description copied from interface:ManagedLedgerFactoryAsynchronous open method.- Specified by:
asyncOpenin interfaceManagedLedgerFactory- Parameters:
name- the unique name that identifies the managed ledgerconfig- managed ledger configurationcallback- callback objectmlOwnershipChecker- checks ml-ownership in case updating ml-metadata fails due to ownership conflictctx- opaque context- See Also:
ManagedLedgerFactory.open(String, ManagedLedgerConfig)
-
openReadOnlyCursor
public ReadOnlyCursor openReadOnlyCursor(java.lang.String managedLedgerName, Position startPosition, ManagedLedgerConfig config) throws java.lang.InterruptedException, ManagedLedgerException
Description copied from interface:ManagedLedgerFactoryOpen aReadOnlyCursorpositioned to the earliest entry for the specified managed ledger- Specified by:
openReadOnlyCursorin interfaceManagedLedgerFactorystartPosition- set the cursor on that particular position. If setting to `PositionImpl.earliest` it will be positioned on the first available entry.- Returns:
- Throws:
java.lang.InterruptedExceptionManagedLedgerException
-
asyncOpenReadOnlyCursor
public void asyncOpenReadOnlyCursor(java.lang.String managedLedgerName, Position startPosition, ManagedLedgerConfig config, AsyncCallbacks.OpenReadOnlyCursorCallback callback, java.lang.Object ctx)Description copied from interface:ManagedLedgerFactoryOpen aReadOnlyCursorpositioned to the earliest entry for the specified managed ledger- Specified by:
asyncOpenReadOnlyCursorin interfaceManagedLedgerFactorystartPosition- set the cursor on that particular position. If setting to `PositionImpl.earliest` it will be positioned on the first available entry.
-
shutdown
public void shutdown() throws java.lang.InterruptedException, ManagedLedgerExceptionDescription copied from interface:ManagedLedgerFactoryReleases all the resources maintained by the ManagedLedgerFactory.- Specified by:
shutdownin interfaceManagedLedgerFactory- Throws:
ManagedLedgerExceptionjava.lang.InterruptedException
-
getManagedLedgerInfo
public ManagedLedgerInfo getManagedLedgerInfo(java.lang.String name) throws java.lang.InterruptedException, ManagedLedgerException
Description copied from interface:ManagedLedgerFactoryGet the current metadata info for a managed ledger.- Specified by:
getManagedLedgerInfoin interfaceManagedLedgerFactory- Parameters:
name- the unique name that identifies the managed ledger- Throws:
java.lang.InterruptedExceptionManagedLedgerException
-
asyncGetManagedLedgerInfo
public void asyncGetManagedLedgerInfo(java.lang.String name, AsyncCallbacks.ManagedLedgerInfoCallback callback, java.lang.Object ctx)Description copied from interface:ManagedLedgerFactoryAsynchronously get the current metadata info for a managed ledger.- Specified by:
asyncGetManagedLedgerInfoin interfaceManagedLedgerFactory- Parameters:
name- the unique name that identifies the managed ledgercallback- callback objectctx- opaque context
-
delete
public void delete(java.lang.String name) throws java.lang.InterruptedException, ManagedLedgerExceptionDescription copied from interface:ManagedLedgerFactoryDelete a managed ledger. If it's not open, it's metadata will get regardless deleted.- Specified by:
deletein interfaceManagedLedgerFactory- Throws:
java.lang.InterruptedExceptionManagedLedgerException
-
asyncDelete
public void asyncDelete(java.lang.String name, AsyncCallbacks.DeleteLedgerCallback callback, java.lang.Object ctx)Description copied from interface:ManagedLedgerFactoryDelete a managed ledger. If it's not open, it's metadata will get regardless deleted.- Specified by:
asyncDeletein interfaceManagedLedgerFactory
-
getMetaStore
public MetaStore getMetaStore()
-
getConfig
public ManagedLedgerFactoryConfig getConfig()
-
getEntryCacheManager
public EntryCacheManager getEntryCacheManager()
-
getCacheStats
public ManagedLedgerFactoryMXBean getCacheStats()
-
getBookKeeper
public org.apache.bookkeeper.client.BookKeeper getBookKeeper()
-
-