You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by gi...@apache.org on 2019/11/11 09:44:28 UTC
[bookkeeper] branch asf-site updated: Updated site at revision
b1991e6b3
This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/asf-site by this push:
new f220899 Updated site at revision b1991e6b3
f220899 is described below
commit f220899b3d9d607f1a6a4f47ac0fcf4f05ea8bce
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Nov 11 09:44:22 2019 +0000
Updated site at revision b1991e6b3
---
.../index.html | 7 +-
.../BP-21-new-api-close-inconsistencies/index.html | 7 +-
.../index.html | 7 +-
content/bps/BP-25-MovingChecksumToProto/index.html | 7 +-
.../index.html | 7 +-
content/bps/BP-27-new-bookkeeper-cli/index.html | 7 +-
.../bps/BP-28-etcd-as-metadata-store/index.html | 7 +-
.../bps/BP-29-metadata-store-api-module/index.html | 7 +-
content/bps/BP-32-advisory-write-close/index.html | 7 +-
.../index.html | 7 +-
.../bps/BP-34-cluster-metadata-checker/index.html | 7 +-
content/bps/BP-35-128-bits-support/index.html | 7 +-
.../index.html | 7 +-
content/bps/BP-37-conf-documentation/index.html | 7 +-
content/bps/BP-template/index.html | 7 +-
content/community/bookkeeper_proposals/index.html | 7 +-
content/community/coding_guide/index.html | 7 +-
content/community/contributing/index.html | 7 +-
content/community/issue-report/index.html | 7 +-
content/community/licensing/index.html | 7 +-
content/community/mailing-lists/index.html | 7 +-
content/community/meeting/index.html | 7 +-
content/community/presentations/index.html | 7 +-
content/community/release_guide/index.html | 7 +-
content/community/releases/index.html | 7 +-
content/community/slack/index.html | 7 +-
content/community/testing/index.html | 7 +-
content/docs/4.10.0/admin/autorecovery/index.html | 848 ++
content/docs/4.10.0/admin/bookies/index.html | 927 ++
.../docs/4.10.0/admin/geo-replication/index.html | 723 +
content/docs/4.10.0/admin/http/index.html | 2032 +++
content/docs/4.10.0/admin/metrics/index.html | 784 +
content/docs/4.10.0/admin/perf/index.html | 701 +
content/docs/4.10.0/admin/placement/index.html | 701 +
content/docs/4.10.0/admin/upgrade/index.html | 1053 ++
.../docs/4.10.0/api/distributedlog-api/index.html | 1111 ++
.../docs/4.10.0/api/javadoc/allclasses-frame.html | 282 +
.../4.10.0/api/javadoc/allclasses-noframe.html | 282 +
.../docs/4.10.0/api/javadoc/constant-values.html | 2962 ++++
.../docs/4.10.0/api/javadoc/deprecated-list.html | 331 +
content/docs/4.10.0/api/javadoc/help-doc.html | 230 +
content/docs/4.10.0/api/javadoc/index-all.html | 15155 +++++++++++++++++++
content/docs/4.10.0/api/javadoc/index.html | 76 +
.../client/AsyncCallback.AddCallback.html | 292 +
.../AsyncCallback.AddCallbackWithLatency.html | 260 +
.../client/AsyncCallback.AddLacCallback.html | 250 +
.../client/AsyncCallback.CloseCallback.html | 250 +
.../client/AsyncCallback.CreateCallback.html | 250 +
.../client/AsyncCallback.DeleteCallback.html | 247 +
.../client/AsyncCallback.IsClosedCallback.html | 245 +
.../client/AsyncCallback.OpenCallback.html | 250 +
.../client/AsyncCallback.ReadCallback.html | 253 +
...Callback.ReadLastConfirmedAndEntryCallback.html | 258 +
.../AsyncCallback.ReadLastConfirmedCallback.html | 252 +
.../client/AsyncCallback.RecoverCallback.html | 243 +
.../apache/bookkeeper/client/AsyncCallback.html | 264 +
...Exception.BKAddEntryQuorumTimeoutException.html | 329 +
.../client/BKException.BKBookieException.html | 329 +
...eption.BKBookieHandleNotAvailableException.html | 329 +
.../BKException.BKClientClosedException.html | 329 +
.../client/BKException.BKDigestMatchException.html | 329 +
...KException.BKDigestNotInitializedException.html | 329 +
.../BKException.BKDuplicateEntryIdException.html | 329 +
.../client/BKException.BKIllegalOpException.html | 329 +
.../BKException.BKIncorrectParameterException.html | 329 +
.../client/BKException.BKInterruptedException.html | 329 +
.../BKException.BKLedgerClosedException.html | 329 +
.../client/BKException.BKLedgerExistException.html | 329 +
.../BKException.BKLedgerFencedException.html | 329 +
.../BKException.BKLedgerIdOverflowException.html | 329 +
.../BKException.BKLedgerRecoveryException.html | 329 +
...Exception.BKMetadataSerializationException.html | 341 +
.../BKException.BKMetadataVersionException.html | 329 +
.../client/BKException.BKNoSuchEntryException.html | 329 +
.../BKException.BKNoSuchLedgerExistsException.html | 329 +
...oSuchLedgerExistsOnMetadataServerException.html | 329 +
.../BKException.BKNotEnoughBookiesException.html | 329 +
.../BKException.BKProtocolVersionException.html | 329 +
.../client/BKException.BKQuorumException.html | 329 +
.../client/BKException.BKReadException.html | 329 +
.../client/BKException.BKReplicationException.html | 329 +
.../client/BKException.BKSecurityException.html | 329 +
.../client/BKException.BKTimeoutException.html | 329 +
.../BKException.BKTooManyRequestsException.html | 329 +
.../BKException.BKUnauthorizedAccessException.html | 329 +
.../BKException.BKUnclosedFragmentException.html | 329 +
...BKException.BKUnexpectedConditionException.html | 329 +
.../client/BKException.BKWriteException.html | 329 +
...Exception.BKWriteOnReadOnlyBookieException.html | 329 +
.../apache/bookkeeper/client/BKException.Code.html | 200 +
.../client/BKException.MetaStoreException.html | 341 +
.../bookkeeper/client/BKException.ZKException.html | 329 +
.../org/apache/bookkeeper/client/BKException.html | 655 +
.../bookkeeper/client/BookKeeper.Builder.html | 670 +
.../bookkeeper/client/BookKeeper.DigestType.html | 420 +
.../org/apache/bookkeeper/client/BookKeeper.html | 1917 +++
.../bookkeeper/client/BookKeeperAccessor.html | 288 +
.../BookKeeperAdmin.LedgerEntriesIterable.html | 372 +
.../BookKeeperAdmin.LedgerEntriesIterator.html | 425 +
.../client/BookKeeperAdmin.ResultCallBack.html | 305 +
.../client/BookKeeperAdmin.SyncObject.html | 291 +
.../apache/bookkeeper/client/BookKeeperAdmin.html | 1386 ++
.../bookkeeper/client/BookKeeperClientStats.html | 1527 ++
.../client/BookieInfoReader.BookieInfo.html | 345 +
.../bookkeeper/client/BookieInfoReader.State.html | 360 +
.../apache/bookkeeper/client/BookieInfoReader.html | 393 +
.../apache/bookkeeper/client/BookieWatcher.html | 357 +
.../bookkeeper/client/BookieWatcherImpl.html | 490 +
.../bookkeeper/client/BookiesHealthInfo.html | 255 +
.../apache/bookkeeper/client/BookiesListener.html | 228 +
.../apache/bookkeeper/client/ClientContext.html | 343 +
.../bookkeeper/client/ClientInternalConf.html | 523 +
.../client/DefaultEnsemblePlacementPolicy.html | 692 +
.../DefaultSpeculativeRequestExecutionPolicy.html | 361 +
.../client/DistributionSchedule.AckSet.html | 316 +
.../DistributionSchedule.QuorumCoverageSet.html | 257 +
.../client/DistributionSchedule.WriteSet.html | 393 +
.../bookkeeper/client/DistributionSchedule.html | 438 +
.../client/DynamicWeightedRandomSelectionImpl.html | 451 +
...lePlacementPolicy.PlacementPolicyAdherence.html | 377 +
.../EnsemblePlacementPolicy.PlacementResult.html | 273 +
.../bookkeeper/client/EnsemblePlacementPolicy.html | 800 +
.../apache/bookkeeper/client/EnsembleUtils.html | 300 +
...tLacFlushPolicy.ExplicitLacFlushPolicyImpl.html | 456 +
.../bookkeeper/client/ExplicitLacFlushPolicy.html | 294 +
.../apache/bookkeeper/client/ForceLedgerOp.html | 503 +
...ologyAwareEnsemblePlacementPolicy.Ensemble.html | 281 +
...logyAwareEnsemblePlacementPolicy.Predicate.html | 235 +
.../ITopologyAwareEnsemblePlacementPolicy.html | 488 +
.../LedgerChecker.InvalidFragmentException.html | 263 +
.../apache/bookkeeper/client/LedgerChecker.html | 354 +
.../client/LedgerCreateOp.CreateBuilderImpl.html | 503 +
.../apache/bookkeeper/client/LedgerCreateOp.html | 630 +
.../client/LedgerDeleteOp.DeleteBuilderImpl.html | 316 +
.../apache/bookkeeper/client/LedgerDeleteOp.html | 444 +
.../org/apache/bookkeeper/client/LedgerEntry.html | 451 +
.../apache/bookkeeper/client/LedgerFragment.html | 549 +
...rFragmentReplicator.SingleFragmentCallback.html | 404 +
.../client/LedgerFragmentReplicator.html | 365 +
.../client/LedgerHandle.LastConfirmedCtx.html | 395 +
.../client/LedgerHandle.NoopCloseCallback.html | 333 +
.../org/apache/bookkeeper/client/LedgerHandle.html | 2576 ++++
.../LedgerHandleAdv.PendingOpsComparator.html | 294 +
.../apache/bookkeeper/client/LedgerHandleAdv.html | 730 +
.../bookkeeper/client/LedgerMetadataBuilder.html | 513 +
.../bookkeeper/client/LedgerMetadataImpl.html | 790 +
.../bookkeeper/client/LedgerMetadataUtils.html | 387 +
.../client/LedgerOpenOp.OpenBuilderImpl.html | 317 +
.../org/apache/bookkeeper/client/LedgerOpenOp.html | 562 +
.../bookkeeper/client/LedgerReader.ReadResult.html | 399 +
.../org/apache/bookkeeper/client/LedgerReader.html | 351 +
.../client/LedgerRecoveryOp.RecoveryReadOp.html | 369 +
.../apache/bookkeeper/client/LedgerRecoveryOp.html | 561 +
.../client/ListenerBasedPendingReadOp.html | 393 +
.../MetadataUpdateLoop.LocalValueUpdater.html | 228 +
.../MetadataUpdateLoop.MetadataTransform.html | 231 +
.../MetadataUpdateLoop.NeedsUpdatePredicate.html | 231 +
.../bookkeeper/client/MetadataUpdateLoop.html | 375 +
.../org/apache/bookkeeper/client/PendingAddOp.html | 845 ++
.../client/PendingReadLacOp.LacCallback.html | 228 +
.../apache/bookkeeper/client/PendingReadLacOp.html | 492 +
.../client/PendingReadOp.LedgerEntryRequest.html | 620 +
.../client/PendingReadOp.ParallelReadRequest.html | 405 +
.../client/PendingReadOp.SequenceReadRequest.html | 492 +
.../apache/bookkeeper/client/PendingReadOp.html | 681 +
.../bookkeeper/client/PendingWriteLacOp.html | 507 +
.../bookkeeper/client/RackChangeNotifier.html | 231 +
.../client/RackawareEnsemblePlacementPolicy.html | 899 ++
.../RackawareEnsemblePlacementPolicyImpl.html | 1442 ++
...edAndEntryOp.LastConfirmedAndEntryCallback.html | 231 +
...astConfirmedAndEntryOp.ParallelReadRequest.html | 405 +
...ConfirmedAndEntryOp.ReadLACAndEntryRequest.html | 611 +
...astConfirmedAndEntryOp.SequenceReadRequest.html | 507 +
.../client/ReadLastConfirmedAndEntryOp.html | 573 +
...dLastConfirmedOp.LastConfirmedDataCallback.html | 229 +
.../bookkeeper/client/ReadLastConfirmedOp.html | 496 +
.../ReadOnlyLedgerHandle.MetadataUpdater.html | 359 +
.../bookkeeper/client/ReadOnlyLedgerHandle.html | 766 +
.../client/RegionAwareEnsemblePlacementPolicy.html | 1111 ++
.../client/RoundRobinDistributionSchedule.html | 488 +
.../client/SpeculativeRequestExecutionPolicy.html | 246 +
.../client/SpeculativeRequestExecutor.html | 243 +
.../SyncCallbackUtils.FutureReadLastConfirmed.html | 326 +
...lbackUtils.FutureReadLastConfirmedAndEntry.html | 332 +
...SyncCallbackUtils.LastAddConfirmedCallback.html | 332 +
.../client/SyncCallbackUtils.SyncAddCallback.html | 333 +
.../SyncCallbackUtils.SyncCloseCallback.html | 296 +
.../SyncCallbackUtils.SyncCreateAdvCallback.html | 296 +
.../SyncCallbackUtils.SyncCreateCallback.html | 296 +
.../SyncCallbackUtils.SyncDeleteCallback.html | 293 +
.../client/SyncCallbackUtils.SyncOpenCallback.html | 296 +
.../client/SyncCallbackUtils.SyncReadCallback.html | 299 +
...allbackUtils.SyncReadLastConfirmedCallback.html | 298 +
.../bookkeeper/client/SyncCallbackUtils.html | 377 +
.../org/apache/bookkeeper/client/SyncCounter.html | 483 +
...semblePlacementPolicy.DNSResolverDecorator.html | 430 +
...areEnsemblePlacementPolicy.DefaultResolver.html | 374 +
...cy.EnsembleForReplacementWithNoConstraints.html | 387 +
...RTopologyAwareCoverageEnsemble.CoverageSet.html | 256 +
...Ensemble.RackOrRegionDurabilityCoverageSet.html | 355 +
...wareCoverageEnsemble.RackQuorumCoverageSet.html | 370 +
...mentPolicy.RRTopologyAwareCoverageEnsemble.html | 635 +
...AwareEnsemblePlacementPolicy.TruePredicate.html | 325 +
.../TopologyAwareEnsemblePlacementPolicy.html | 788 +
.../bookkeeper/client/TryReadLastConfirmedOp.html | 452 +
.../apache/bookkeeper/client/UpdateLedgerOp.html | 301 +
.../WeightedRandomSelection.WeightedObject.html | 230 +
.../bookkeeper/client/WeightedRandomSelection.html | 284 +
.../client/WeightedRandomSelectionImpl.html | 460 +
.../client/ZoneawareEnsemblePlacementPolicy.html | 647 +
...ePlacementPolicyImpl.ZoneAwareNodeLocation.html | 326 +
.../ZoneawareEnsemblePlacementPolicyImpl.html | 1130 ++
.../bookkeeper/client/api/BKException.Code.html | 959 ++
.../apache/bookkeeper/client/api/BKException.html | 460 +
.../apache/bookkeeper/client/api/BookKeeper.html | 332 +
.../bookkeeper/client/api/BookKeeperBuilder.html | 382 +
.../bookkeeper/client/api/CreateAdvBuilder.html | 253 +
.../bookkeeper/client/api/CreateBuilder.html | 435 +
.../bookkeeper/client/api/DeleteBuilder.html | 254 +
.../apache/bookkeeper/client/api/DigestType.html | 385 +
.../bookkeeper/client/api/ForceableHandle.html | 251 +
.../org/apache/bookkeeper/client/api/Handle.html | 320 +
.../client/api/LastConfirmedAndEntry.html | 297 +
.../bookkeeper/client/api/LedgerEntries.html | 301 +
.../apache/bookkeeper/client/api/LedgerEntry.html | 392 +
.../client/api/LedgerMetadata.State.html | 372 +
.../bookkeeper/client/api/LedgerMetadata.html | 590 +
.../apache/bookkeeper/client/api/OpBuilder.html | 246 +
.../apache/bookkeeper/client/api/OpenBuilder.html | 323 +
.../apache/bookkeeper/client/api/ReadHandle.html | 610 +
.../bookkeeper/client/api/WriteAdvHandle.html | 490 +
.../apache/bookkeeper/client/api/WriteFlag.html | 423 +
.../apache/bookkeeper/client/api/WriteHandle.html | 565 +
.../client/api/class-use/BKException.Code.html | 169 +
.../client/api/class-use/BKException.html | 551 +
.../client/api/class-use/BookKeeper.html | 219 +
.../client/api/class-use/BookKeeperBuilder.html | 264 +
.../client/api/class-use/CreateAdvBuilder.html | 199 +
.../client/api/class-use/CreateBuilder.html | 282 +
.../client/api/class-use/DeleteBuilder.html | 216 +
.../client/api/class-use/DigestType.html | 313 +
.../client/api/class-use/ForceableHandle.html | 215 +
.../bookkeeper/client/api/class-use/Handle.html | 221 +
.../api/class-use/LastConfirmedAndEntry.html | 242 +
.../client/api/class-use/LedgerEntries.html | 270 +
.../client/api/class-use/LedgerEntry.html | 288 +
.../client/api/class-use/LedgerMetadata.State.html | 230 +
.../client/api/class-use/LedgerMetadata.html | 445 +
.../bookkeeper/client/api/class-use/OpBuilder.html | 245 +
.../client/api/class-use/OpenBuilder.html | 281 +
.../client/api/class-use/ReadHandle.html | 228 +
.../client/api/class-use/WriteAdvHandle.html | 170 +
.../bookkeeper/client/api/class-use/WriteFlag.html | 349 +
.../client/api/class-use/WriteHandle.html | 196 +
.../bookkeeper/client/api/package-frame.html | 46 +
.../bookkeeper/client/api/package-summary.html | 300 +
.../apache/bookkeeper/client/api/package-tree.html | 203 +
.../apache/bookkeeper/client/api/package-use.html | 423 +
.../class-use/AsyncCallback.AddCallback.html | 288 +
.../AsyncCallback.AddCallbackWithLatency.html | 260 +
.../class-use/AsyncCallback.AddLacCallback.html | 195 +
.../class-use/AsyncCallback.CloseCallback.html | 208 +
.../class-use/AsyncCallback.CreateCallback.html | 268 +
.../class-use/AsyncCallback.DeleteCallback.html | 214 +
.../class-use/AsyncCallback.IsClosedCallback.html | 172 +
.../class-use/AsyncCallback.OpenCallback.html | 252 +
.../class-use/AsyncCallback.ReadCallback.html | 212 +
...Callback.ReadLastConfirmedAndEntryCallback.html | 186 +
.../AsyncCallback.ReadLastConfirmedCallback.html | 202 +
.../class-use/AsyncCallback.RecoverCallback.html | 197 +
.../bookkeeper/client/class-use/AsyncCallback.html | 125 +
...Exception.BKAddEntryQuorumTimeoutException.html | 125 +
.../class-use/BKException.BKBookieException.html | 125 +
...eption.BKBookieHandleNotAvailableException.html | 125 +
.../BKException.BKClientClosedException.html | 125 +
.../BKException.BKDigestMatchException.html | 125 +
...KException.BKDigestNotInitializedException.html | 125 +
.../BKException.BKDuplicateEntryIdException.html | 125 +
.../BKException.BKIllegalOpException.html | 125 +
.../BKException.BKIncorrectParameterException.html | 125 +
.../BKException.BKInterruptedException.html | 125 +
.../BKException.BKLedgerClosedException.html | 125 +
.../BKException.BKLedgerExistException.html | 125 +
.../BKException.BKLedgerFencedException.html | 125 +
.../BKException.BKLedgerIdOverflowException.html | 125 +
.../BKException.BKLedgerRecoveryException.html | 125 +
...Exception.BKMetadataSerializationException.html | 125 +
.../BKException.BKMetadataVersionException.html | 125 +
.../BKException.BKNoSuchEntryException.html | 125 +
.../BKException.BKNoSuchLedgerExistsException.html | 125 +
...oSuchLedgerExistsOnMetadataServerException.html | 125 +
.../BKException.BKNotEnoughBookiesException.html | 538 +
.../BKException.BKProtocolVersionException.html | 125 +
.../class-use/BKException.BKQuorumException.html | 125 +
.../class-use/BKException.BKReadException.html | 125 +
.../BKException.BKReplicationException.html | 125 +
.../class-use/BKException.BKSecurityException.html | 125 +
.../class-use/BKException.BKTimeoutException.html | 125 +
.../BKException.BKTooManyRequestsException.html | 125 +
.../BKException.BKUnauthorizedAccessException.html | 125 +
.../BKException.BKUnclosedFragmentException.html | 125 +
...BKException.BKUnexpectedConditionException.html | 125 +
.../class-use/BKException.BKWriteException.html | 125 +
...Exception.BKWriteOnReadOnlyBookieException.html | 125 +
.../client/class-use/BKException.Code.html | 125 +
.../class-use/BKException.MetaStoreException.html | 125 +
.../client/class-use/BKException.ZKException.html | 125 +
.../bookkeeper/client/class-use/BKException.html | 831 +
.../client/class-use/BookKeeper.Builder.html | 233 +
.../client/class-use/BookKeeper.DigestType.html | 468 +
.../bookkeeper/client/class-use/BookKeeper.html | 291 +
.../client/class-use/BookKeeperAccessor.html | 125 +
.../BookKeeperAdmin.LedgerEntriesIterable.html | 125 +
.../BookKeeperAdmin.LedgerEntriesIterator.html | 125 +
.../class-use/BookKeeperAdmin.ResultCallBack.html | 125 +
.../class-use/BookKeeperAdmin.SyncObject.html | 125 +
.../client/class-use/BookKeeperAdmin.html | 166 +
.../client/class-use/BookKeeperClientStats.html | 260 +
.../class-use/BookieInfoReader.BookieInfo.html | 196 +
.../client/class-use/BookieInfoReader.State.html | 176 +
.../client/class-use/BookieInfoReader.html | 167 +
.../bookkeeper/client/class-use/BookieWatcher.html | 204 +
.../client/class-use/BookieWatcherImpl.html | 167 +
.../client/class-use/BookiesHealthInfo.html | 285 +
.../client/class-use/BookiesListener.html | 125 +
.../bookkeeper/client/class-use/ClientContext.html | 298 +
.../client/class-use/ClientInternalConf.html | 193 +
.../class-use/DefaultEnsemblePlacementPolicy.html | 125 +
.../DefaultSpeculativeRequestExecutionPolicy.html | 125 +
.../class-use/DistributionSchedule.AckSet.html | 205 +
.../DistributionSchedule.QuorumCoverageSet.html | 188 +
.../class-use/DistributionSchedule.WriteSet.html | 436 +
.../client/class-use/DistributionSchedule.html | 198 +
.../DynamicWeightedRandomSelectionImpl.html | 125 +
...lePlacementPolicy.PlacementPolicyAdherence.html | 239 +
.../EnsemblePlacementPolicy.PlacementResult.html | 345 +
.../client/class-use/EnsemblePlacementPolicy.html | 337 +
.../bookkeeper/client/class-use/EnsembleUtils.html | 125 +
...tLacFlushPolicy.ExplicitLacFlushPolicyImpl.html | 125 +
.../client/class-use/ExplicitLacFlushPolicy.html | 184 +
.../bookkeeper/client/class-use/ForceLedgerOp.html | 125 +
...ologyAwareEnsemblePlacementPolicy.Ensemble.html | 438 +
...logyAwareEnsemblePlacementPolicy.Predicate.html | 423 +
.../ITopologyAwareEnsemblePlacementPolicy.html | 212 +
.../LedgerChecker.InvalidFragmentException.html | 125 +
.../bookkeeper/client/class-use/LedgerChecker.html | 125 +
.../LedgerCreateOp.CreateBuilderImpl.html | 125 +
.../client/class-use/LedgerCreateOp.html | 125 +
.../LedgerDeleteOp.DeleteBuilderImpl.html | 125 +
.../client/class-use/LedgerDeleteOp.html | 125 +
.../bookkeeper/client/class-use/LedgerEntry.html | 351 +
.../client/class-use/LedgerFragment.html | 261 +
...rFragmentReplicator.SingleFragmentCallback.html | 125 +
.../client/class-use/LedgerFragmentReplicator.html | 125 +
.../class-use/LedgerHandle.LastConfirmedCtx.html | 125 +
.../class-use/LedgerHandle.NoopCloseCallback.html | 167 +
.../bookkeeper/client/class-use/LedgerHandle.html | 732 +
.../LedgerHandleAdv.PendingOpsComparator.html | 125 +
.../client/class-use/LedgerHandleAdv.html | 165 +
.../client/class-use/LedgerMetadataBuilder.html | 237 +
.../client/class-use/LedgerMetadataImpl.html | 125 +
.../client/class-use/LedgerMetadataUtils.html | 125 +
.../class-use/LedgerOpenOp.OpenBuilderImpl.html | 125 +
.../bookkeeper/client/class-use/LedgerOpenOp.html | 125 +
.../client/class-use/LedgerReader.ReadResult.html | 175 +
.../bookkeeper/client/class-use/LedgerReader.html | 125 +
.../class-use/LedgerRecoveryOp.RecoveryReadOp.html | 125 +
.../client/class-use/LedgerRecoveryOp.html | 169 +
.../class-use/ListenerBasedPendingReadOp.html | 167 +
.../MetadataUpdateLoop.LocalValueUpdater.html | 172 +
.../MetadataUpdateLoop.MetadataTransform.html | 172 +
.../MetadataUpdateLoop.NeedsUpdatePredicate.html | 172 +
.../client/class-use/MetadataUpdateLoop.html | 125 +
.../bookkeeper/client/class-use/PendingAddOp.html | 247 +
.../class-use/PendingReadLacOp.LacCallback.html | 181 +
.../client/class-use/PendingReadLacOp.html | 125 +
.../PendingReadOp.LedgerEntryRequest.html | 199 +
.../PendingReadOp.ParallelReadRequest.html | 125 +
.../PendingReadOp.SequenceReadRequest.html | 125 +
.../bookkeeper/client/class-use/PendingReadOp.html | 184 +
.../client/class-use/PendingWriteLacOp.html | 125 +
.../client/class-use/RackChangeNotifier.html | 125 +
.../RackawareEnsemblePlacementPolicy.html | 192 +
.../RackawareEnsemblePlacementPolicyImpl.html | 225 +
...edAndEntryOp.LastConfirmedAndEntryCallback.html | 170 +
...astConfirmedAndEntryOp.ParallelReadRequest.html | 125 +
...ConfirmedAndEntryOp.ReadLACAndEntryRequest.html | 199 +
...astConfirmedAndEntryOp.SequenceReadRequest.html | 125 +
.../class-use/ReadLastConfirmedAndEntryOp.html | 167 +
...dLastConfirmedOp.LastConfirmedDataCallback.html | 192 +
.../client/class-use/ReadLastConfirmedOp.html | 125 +
.../ReadOnlyLedgerHandle.MetadataUpdater.html | 125 +
.../client/class-use/ReadOnlyLedgerHandle.html | 167 +
.../RegionAwareEnsemblePlacementPolicy.html | 171 +
.../class-use/RoundRobinDistributionSchedule.html | 125 +
.../SpeculativeRequestExecutionPolicy.html | 186 +
.../class-use/SpeculativeRequestExecutor.html | 204 +
.../SyncCallbackUtils.FutureReadLastConfirmed.html | 125 +
...lbackUtils.FutureReadLastConfirmedAndEntry.html | 125 +
...SyncCallbackUtils.LastAddConfirmedCallback.html | 167 +
.../SyncCallbackUtils.SyncAddCallback.html | 125 +
.../SyncCallbackUtils.SyncCloseCallback.html | 125 +
.../SyncCallbackUtils.SyncCreateAdvCallback.html | 125 +
.../SyncCallbackUtils.SyncCreateCallback.html | 125 +
.../SyncCallbackUtils.SyncDeleteCallback.html | 125 +
.../SyncCallbackUtils.SyncOpenCallback.html | 125 +
.../SyncCallbackUtils.SyncReadCallback.html | 125 +
...allbackUtils.SyncReadLastConfirmedCallback.html | 125 +
.../client/class-use/SyncCallbackUtils.html | 125 +
.../bookkeeper/client/class-use/SyncCounter.html | 125 +
...semblePlacementPolicy.DNSResolverDecorator.html | 125 +
...areEnsemblePlacementPolicy.DefaultResolver.html | 125 +
...cy.EnsembleForReplacementWithNoConstraints.html | 167 +
...RTopologyAwareCoverageEnsemble.CoverageSet.html | 184 +
...Ensemble.RackOrRegionDurabilityCoverageSet.html | 167 +
...wareCoverageEnsemble.RackQuorumCoverageSet.html | 167 +
...mentPolicy.RRTopologyAwareCoverageEnsemble.html | 165 +
...AwareEnsemblePlacementPolicy.TruePredicate.html | 167 +
.../TopologyAwareEnsemblePlacementPolicy.html | 206 +
.../client/class-use/TryReadLastConfirmedOp.html | 125 +
.../client/class-use/UpdateLedgerOp.html | 125 +
.../WeightedRandomSelection.WeightedObject.html | 211 +
.../client/class-use/WeightedRandomSelection.html | 187 +
.../class-use/WeightedRandomSelectionImpl.html | 125 +
.../ZoneawareEnsemblePlacementPolicy.html | 125 +
...ePlacementPolicyImpl.ZoneAwareNodeLocation.html | 197 +
.../ZoneawareEnsemblePlacementPolicyImpl.html | 195 +
.../client/impl/BookKeeperBuilderImpl.html | 450 +
.../client/impl/BookKeeperClientStatsImpl.html | 715 +
.../client/impl/LastConfirmedAndEntryImpl.html | 366 +
.../bookkeeper/client/impl/LedgerEntriesImpl.html | 338 +
.../bookkeeper/client/impl/LedgerEntryImpl.html | 499 +
.../bookkeeper/client/impl/OpenBuilderBase.html | 478 +
.../impl/class-use/BookKeeperBuilderImpl.html | 125 +
.../impl/class-use/BookKeeperClientStatsImpl.html | 125 +
.../impl/class-use/LastConfirmedAndEntryImpl.html | 179 +
.../client/impl/class-use/LedgerEntriesImpl.html | 169 +
.../client/impl/class-use/LedgerEntryImpl.html | 224 +
.../client/impl/class-use/OpenBuilderBase.html | 167 +
.../bookkeeper/client/impl/package-frame.html | 25 +
.../bookkeeper/client/impl/package-summary.html | 188 +
.../bookkeeper/client/impl/package-tree.html | 143 +
.../apache/bookkeeper/client/impl/package-use.html | 200 +
.../apache/bookkeeper/client/package-frame.html | 185 +
.../apache/bookkeeper/client/package-summary.html | 1069 ++
.../org/apache/bookkeeper/client/package-tree.html | 384 +
.../org/apache/bookkeeper/client/package-use.html | 567 +
.../InterfaceAudience.LimitedPrivate.html | 168 +
.../annotation/InterfaceAudience.Private.html | 167 +
.../annotation/InterfaceAudience.Public.html | 167 +
.../common/annotation/InterfaceAudience.html | 234 +
.../annotation/InterfaceStability.Evolving.html | 166 +
.../annotation/InterfaceStability.Stable.html | 167 +
.../annotation/InterfaceStability.Unstable.html | 167 +
.../common/annotation/InterfaceStability.html | 237 +
.../InterfaceAudience.LimitedPrivate.html | 195 +
.../class-use/InterfaceAudience.Private.html | 175 +
.../class-use/InterfaceAudience.Public.html | 417 +
.../annotation/class-use/InterfaceAudience.html | 125 +
.../class-use/InterfaceStability.Evolving.html | 188 +
.../class-use/InterfaceStability.Stable.html | 294 +
.../class-use/InterfaceStability.Unstable.html | 285 +
.../annotation/class-use/InterfaceStability.html | 125 +
.../common/annotation/package-frame.html | 30 +
.../common/annotation/package-summary.html | 210 +
.../bookkeeper/common/annotation/package-tree.html | 148 +
.../bookkeeper/common/annotation/package-use.html | 281 +
.../bookkeeper/conf/AbstractConfiguration.html | 3091 ++++
.../bookkeeper/conf/ClientConfiguration.html | 4832 ++++++
.../org/apache/bookkeeper/conf/Configurable.html | 252 +
.../bookkeeper/conf/ServerConfiguration.html | 8232 ++++++++++
.../conf/UncheckedConfigurationException.html | 347 +
.../conf/class-use/AbstractConfiguration.html | 208 +
.../conf/class-use/ClientConfiguration.html | 839 +
.../bookkeeper/conf/class-use/Configurable.html | 125 +
.../conf/class-use/ServerConfiguration.html | 898 ++
.../class-use/UncheckedConfigurationException.html | 169 +
.../org/apache/bookkeeper/conf/package-frame.html | 30 +
.../apache/bookkeeper/conf/package-summary.html | 200 +
.../org/apache/bookkeeper/conf/package-tree.html | 172 +
.../org/apache/bookkeeper/conf/package-use.html | 228 +
.../feature/CacheableFeatureProvider.html | 422 +
.../org/apache/bookkeeper/feature/Feature.html | 314 +
.../apache/bookkeeper/feature/FeatureProvider.html | 258 +
.../bookkeeper/feature/FixedValueFeature.html | 410 +
.../apache/bookkeeper/feature/SettableFeature.html | 340 +
.../feature/SettableFeatureProvider.html | 368 +
.../class-use/CacheableFeatureProvider.html | 170 +
.../bookkeeper/feature/class-use/Feature.html | 278 +
.../feature/class-use/FeatureProvider.html | 401 +
.../feature/class-use/FixedValueFeature.html | 170 +
.../feature/class-use/SettableFeature.html | 168 +
.../feature/class-use/SettableFeatureProvider.html | 125 +
.../apache/bookkeeper/feature/package-frame.html | 28 +
.../apache/bookkeeper/feature/package-summary.html | 206 +
.../apache/bookkeeper/feature/package-tree.html | 152 +
.../org/apache/bookkeeper/feature/package-use.html | 280 +
.../apache/bookkeeper/stats/AlertStatsLogger.html | 332 +
.../bookkeeper/stats/CachingStatsLogger.html | 537 +
.../bookkeeper/stats/CachingStatsProvider.html | 418 +
.../bookkeeper/stats/CodahaleMetricsProvider.html | 498 +
.../bookkeeper/stats/CodahaleOpStatsLogger.html | 476 +
.../bookkeeper/stats/CodahaleStatsLogger.html | 487 +
.../org/apache/bookkeeper/stats/Counter.html | 300 +
.../javadoc/org/apache/bookkeeper/stats/Gauge.html | 238 +
.../stats/NullStatsLogger.NullCounter.html | 374 +
.../stats/NullStatsLogger.NullOpStatsLogger.html | 440 +
.../apache/bookkeeper/stats/NullStatsLogger.html | 503 +
.../apache/bookkeeper/stats/NullStatsProvider.html | 377 +
.../org/apache/bookkeeper/stats/OpStatsData.html | 385 +
.../org/apache/bookkeeper/stats/OpStatsLogger.html | 332 +
.../javadoc/org/apache/bookkeeper/stats/Stats.html | 365 +
.../org/apache/bookkeeper/stats/StatsLogger.html | 345 +
.../stats/StatsLoggerBenchmark.LoggerState.html | 280 +
.../bookkeeper/stats/StatsLoggerBenchmark.html | 309 +
.../org/apache/bookkeeper/stats/StatsProvider.html | 314 +
.../bookkeeper/stats/annotations/StatsDoc.html | 377 +
.../stats/annotations/class-use/StatsDoc.html | 250 +
.../stats/annotations/package-frame.html | 20 +
.../stats/annotations/package-summary.html | 154 +
.../bookkeeper/stats/annotations/package-tree.html | 134 +
.../bookkeeper/stats/annotations/package-use.html | 185 +
.../stats/class-use/AlertStatsLogger.html | 125 +
.../stats/class-use/CachingStatsLogger.html | 125 +
.../stats/class-use/CachingStatsProvider.html | 125 +
.../stats/class-use/CodahaleMetricsProvider.html | 125 +
.../stats/class-use/CodahaleOpStatsLogger.html | 125 +
.../stats/class-use/CodahaleStatsLogger.html | 125 +
.../apache/bookkeeper/stats/class-use/Counter.html | 445 +
.../apache/bookkeeper/stats/class-use/Gauge.html | 347 +
.../class-use/NullStatsLogger.NullCounter.html | 167 +
.../NullStatsLogger.NullOpStatsLogger.html | 167 +
.../stats/class-use/NullStatsLogger.html | 167 +
.../stats/class-use/NullStatsProvider.html | 125 +
.../bookkeeper/stats/class-use/OpStatsData.html | 241 +
.../bookkeeper/stats/class-use/OpStatsLogger.html | 479 +
.../apache/bookkeeper/stats/class-use/Stats.html | 125 +
.../bookkeeper/stats/class-use/StatsLogger.html | 688 +
.../StatsLoggerBenchmark.LoggerState.html | 205 +
.../stats/class-use/StatsLoggerBenchmark.html | 177 +
.../bookkeeper/stats/class-use/StatsProvider.html | 338 +
.../stats/codahale/CodahaleMetricsProvider.html | 471 +
.../stats/codahale/CodahaleOpStatsLogger.html | 453 +
.../stats/codahale/CodahaleStatsLogger.html | 466 +
.../codahale/FastCodahaleMetricsProvider.html | 325 +
.../stats/codahale/FastCodahaleStatsLogger.html | 343 +
.../bookkeeper/stats/codahale/FastSnapshot.html | 418 +
.../stats/codahale/FastTimer.Buckets.html | 362 +
.../bookkeeper/stats/codahale/FastTimer.html | 620 +
.../stats/codahale/TimerBenchmark.MyState.html | 374 +
.../stats/codahale/TimerBenchmark.TimerType.html | 347 +
.../bookkeeper/stats/codahale/TimerBenchmark.html | 367 +
.../class-use/CodahaleMetricsProvider.html | 169 +
.../codahale/class-use/CodahaleOpStatsLogger.html | 125 +
.../codahale/class-use/CodahaleStatsLogger.html | 169 +
.../class-use/FastCodahaleMetricsProvider.html | 125 +
.../class-use/FastCodahaleStatsLogger.html | 125 +
.../stats/codahale/class-use/FastSnapshot.html | 125 +
.../codahale/class-use/FastTimer.Buckets.html | 190 +
.../stats/codahale/class-use/FastTimer.html | 170 +
.../codahale/class-use/TimerBenchmark.MyState.html | 210 +
.../class-use/TimerBenchmark.TimerType.html | 189 +
.../stats/codahale/class-use/TimerBenchmark.html | 177 +
.../generated/TimerBenchmark_MyState_jmhType.html | 294 +
.../TimerBenchmark_MyState_jmhType_B1.html | 3612 +++++
.../TimerBenchmark_MyState_jmhType_B2.html | 452 +
.../TimerBenchmark_MyState_jmhType_B3.html | 3629 +++++
.../codahale/generated/TimerBenchmark_jmhType.html | 302 +
.../generated/TimerBenchmark_jmhType_B1.html | 3620 +++++
.../generated/TimerBenchmark_jmhType_B2.html | 460 +
.../generated/TimerBenchmark_jmhType_B3.html | 3637 +++++
...erBenchmark_timerTestWithSnapshots_jmhTest.html | 3984 +++++
.../TimerBenchmark_timerTest_jmhTest.html | 3984 +++++
.../class-use/TimerBenchmark_MyState_jmhType.html | 309 +
.../TimerBenchmark_MyState_jmhType_B1.html | 173 +
.../TimerBenchmark_MyState_jmhType_B2.html | 202 +
.../TimerBenchmark_MyState_jmhType_B3.html | 165 +
.../class-use/TimerBenchmark_jmhType.html | 309 +
.../class-use/TimerBenchmark_jmhType_B1.html | 173 +
.../class-use/TimerBenchmark_jmhType_B2.html | 202 +
.../class-use/TimerBenchmark_jmhType_B3.html | 165 +
...erBenchmark_timerTestWithSnapshots_jmhTest.html | 125 +
.../TimerBenchmark_timerTest_jmhTest.html | 125 +
.../stats/codahale/generated/package-frame.html | 29 +
.../stats/codahale/generated/package-summary.html | 179 +
.../stats/codahale/generated/package-tree.html | 173 +
.../stats/codahale/generated/package-use.html | 179 +
.../bookkeeper/stats/codahale/package-frame.html | 33 +
.../bookkeeper/stats/codahale/package-summary.html | 223 +
.../bookkeeper/stats/codahale/package-tree.html | 173 +
.../bookkeeper/stats/codahale/package-use.html | 213 +
.../StatsLoggerBenchmark_LoggerState_jmhType.html | 287 +
...tatsLoggerBenchmark_LoggerState_jmhType_B1.html | 3605 +++++
...tatsLoggerBenchmark_LoggerState_jmhType_B2.html | 484 +
...tatsLoggerBenchmark_LoggerState_jmhType_B3.html | 3622 +++++
...tsLoggerBenchmark_counterIncrement_jmhTest.html | 3984 +++++
.../generated/StatsLoggerBenchmark_jmhType.html | 302 +
.../generated/StatsLoggerBenchmark_jmhType_B1.html | 3620 +++++
.../generated/StatsLoggerBenchmark_jmhType_B2.html | 460 +
.../generated/StatsLoggerBenchmark_jmhType_B3.html | 3637 +++++
...StatsLoggerBenchmark_recordLatency_jmhTest.html | 3984 +++++
.../StatsLoggerBenchmark_LoggerState_jmhType.html | 309 +
...tatsLoggerBenchmark_LoggerState_jmhType_B1.html | 173 +
...tatsLoggerBenchmark_LoggerState_jmhType_B2.html | 202 +
...tatsLoggerBenchmark_LoggerState_jmhType_B3.html | 165 +
...tsLoggerBenchmark_counterIncrement_jmhTest.html | 125 +
.../class-use/StatsLoggerBenchmark_jmhType.html | 309 +
.../class-use/StatsLoggerBenchmark_jmhType_B1.html | 173 +
.../class-use/StatsLoggerBenchmark_jmhType_B2.html | 202 +
.../class-use/StatsLoggerBenchmark_jmhType_B3.html | 165 +
...StatsLoggerBenchmark_recordLatency_jmhTest.html | 125 +
.../bookkeeper/stats/generated/package-frame.html | 29 +
.../stats/generated/package-summary.html | 179 +
.../bookkeeper/stats/generated/package-tree.html | 173 +
.../bookkeeper/stats/generated/package-use.html | 179 +
.../org/apache/bookkeeper/stats/package-frame.html | 41 +
.../apache/bookkeeper/stats/package-summary.html | 266 +
.../org/apache/bookkeeper/stats/package-tree.html | 159 +
.../org/apache/bookkeeper/stats/package-use.html | 459 +
.../prometheus/DataSketchesOpStatsLogger.html | 454 +
.../stats/prometheus/LongAdderCounter.html | 373 +
.../prometheus/PrometheusMetricsProvider.html | 594 +
.../stats/prometheus/PrometheusServlet.html | 340 +
.../stats/prometheus/PrometheusStatsLogger.html | 413 +
.../stats/prometheus/PrometheusTextFormatUtil.html | 331 +
.../bookkeeper/stats/prometheus/SimpleGauge.html | 273 +
.../class-use/DataSketchesOpStatsLogger.html | 182 +
.../prometheus/class-use/LongAdderCounter.html | 167 +
.../class-use/PrometheusMetricsProvider.html | 169 +
.../prometheus/class-use/PrometheusServlet.html | 125 +
.../class-use/PrometheusStatsLogger.html | 125 +
.../class-use/PrometheusTextFormatUtil.html | 125 +
.../stats/prometheus/class-use/SimpleGauge.html | 182 +
.../bookkeeper/stats/prometheus/package-frame.html | 26 +
.../stats/prometheus/package-summary.html | 190 +
.../bookkeeper/stats/prometheus/package-tree.html | 152 +
.../bookkeeper/stats/prometheus/package-use.html | 177 +
.../utils/StatsDocGenerator.StatsDocEntry.html | 276 +
.../stats/utils/StatsDocGenerator.StatsType.html | 358 +
.../bookkeeper/stats/utils/StatsDocGenerator.html | 321 +
.../class-use/StatsDocGenerator.StatsDocEntry.html | 125 +
.../class-use/StatsDocGenerator.StatsType.html | 176 +
.../stats/utils/class-use/StatsDocGenerator.html | 125 +
.../bookkeeper/stats/utils/package-frame.html | 25 +
.../bookkeeper/stats/utils/package-summary.html | 173 +
.../bookkeeper/stats/utils/package-tree.html | 151 +
.../apache/bookkeeper/stats/utils/package-use.html | 160 +
.../docs/4.10.0/api/javadoc/overview-frame.html | 33 +
.../docs/4.10.0/api/javadoc/overview-summary.html | 254 +
content/docs/4.10.0/api/javadoc/overview-tree.html | 631 +
content/docs/4.10.0/api/javadoc/package-list | 13 +
content/docs/4.10.0/api/javadoc/script.js | 30 +
.../docs/4.10.0/api/javadoc/serialized-form.html | 358 +
content/docs/4.10.0/api/javadoc/stylesheet.css | 574 +
content/docs/4.10.0/api/ledger-adv-api/index.html | 811 +
content/docs/4.10.0/api/ledger-api/index.html | 1567 ++
content/docs/4.10.0/api/overview/index.html | 716 +
content/docs/4.10.0/deployment/dcos/index.html | 900 ++
.../docs/4.10.0/deployment/kubernetes/index.html | 877 ++
content/docs/4.10.0/deployment/manual/index.html | 782 +
.../docs/4.10.0/development/codebase/index.html | 701 +
.../docs/4.10.0/development/protocol/index.html | 941 ++
.../4.10.0/getting-started/concepts/index.html | 995 ++
.../4.10.0/getting-started/installation/index.html | 846 ++
.../4.10.0/getting-started/run-locally/index.html | 711 +
content/docs/4.10.0/overview/overview/index.html | 794 +
.../docs/4.10.0/overview/releaseNotes/index.html | 730 +
.../overview/releaseNotesTemplate/index.html | 715 +
content/docs/4.10.0/reference/cli/index.html | 1828 +++
content/docs/4.10.0/reference/config/index.html | 2516 +++
content/docs/4.10.0/reference/metrics/index.html | 701 +
content/docs/4.10.0/security/overview/index.html | 729 +
content/docs/4.10.0/security/sasl/index.html | 926 ++
content/docs/4.10.0/security/tls/index.html | 918 ++
content/docs/4.10.0/security/zookeeper/index.html | 755 +
content/docs/4.5.0/admin/autorecovery/index.html | 7 +-
content/docs/4.5.0/admin/bookies/index.html | 7 +-
.../docs/4.5.0/admin/geo-replication/index.html | 7 +-
content/docs/4.5.0/admin/metrics/index.html | 7 +-
content/docs/4.5.0/admin/perf/index.html | 7 +-
content/docs/4.5.0/admin/placement/index.html | 7 +-
content/docs/4.5.0/admin/upgrade/index.html | 7 +-
.../docs/4.5.0/api/distributedlog-api/index.html | 7 +-
content/docs/4.5.0/api/ledger-adv-api/index.html | 7 +-
content/docs/4.5.0/api/ledger-api/index.html | 7 +-
content/docs/4.5.0/api/overview/index.html | 7 +-
content/docs/4.5.0/deployment/dcos/index.html | 7 +-
.../docs/4.5.0/deployment/kubernetes/index.html | 7 +-
content/docs/4.5.0/deployment/manual/index.html | 7 +-
content/docs/4.5.0/development/codebase/index.html | 7 +-
content/docs/4.5.0/development/protocol/index.html | 7 +-
.../docs/4.5.0/getting-started/concepts/index.html | 7 +-
.../4.5.0/getting-started/installation/index.html | 13 +-
.../4.5.0/getting-started/run-locally/index.html | 7 +-
content/docs/4.5.0/overview/overview/index.html | 7 +-
.../docs/4.5.0/overview/releaseNotes/index.html | 7 +-
.../4.5.0/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.5.0/reference/cli/index.html | 7 +-
content/docs/4.5.0/reference/config/index.html | 7 +-
content/docs/4.5.0/reference/metrics/index.html | 7 +-
content/docs/4.5.0/security/overview/index.html | 7 +-
content/docs/4.5.0/security/sasl/index.html | 7 +-
content/docs/4.5.0/security/tls/index.html | 7 +-
content/docs/4.5.0/security/zookeeper/index.html | 7 +-
content/docs/4.5.1/admin/autorecovery/index.html | 7 +-
content/docs/4.5.1/admin/bookies/index.html | 7 +-
.../docs/4.5.1/admin/geo-replication/index.html | 7 +-
content/docs/4.5.1/admin/metrics/index.html | 7 +-
content/docs/4.5.1/admin/perf/index.html | 7 +-
content/docs/4.5.1/admin/placement/index.html | 7 +-
content/docs/4.5.1/admin/upgrade/index.html | 7 +-
.../docs/4.5.1/api/distributedlog-api/index.html | 7 +-
content/docs/4.5.1/api/ledger-adv-api/index.html | 7 +-
content/docs/4.5.1/api/ledger-api/index.html | 7 +-
content/docs/4.5.1/api/overview/index.html | 7 +-
content/docs/4.5.1/deployment/dcos/index.html | 7 +-
.../docs/4.5.1/deployment/kubernetes/index.html | 7 +-
content/docs/4.5.1/deployment/manual/index.html | 7 +-
content/docs/4.5.1/development/codebase/index.html | 7 +-
content/docs/4.5.1/development/protocol/index.html | 7 +-
.../docs/4.5.1/getting-started/concepts/index.html | 7 +-
.../4.5.1/getting-started/installation/index.html | 13 +-
.../4.5.1/getting-started/run-locally/index.html | 7 +-
content/docs/4.5.1/overview/overview/index.html | 7 +-
.../docs/4.5.1/overview/releaseNotes/index.html | 7 +-
.../4.5.1/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.5.1/reference/cli/index.html | 7 +-
content/docs/4.5.1/reference/config/index.html | 7 +-
content/docs/4.5.1/reference/metrics/index.html | 7 +-
content/docs/4.5.1/security/overview/index.html | 7 +-
content/docs/4.5.1/security/sasl/index.html | 7 +-
content/docs/4.5.1/security/tls/index.html | 7 +-
content/docs/4.5.1/security/zookeeper/index.html | 7 +-
content/docs/4.6.0/admin/autorecovery/index.html | 7 +-
content/docs/4.6.0/admin/bookies/index.html | 7 +-
.../docs/4.6.0/admin/geo-replication/index.html | 7 +-
content/docs/4.6.0/admin/http/index.html | 7 +-
content/docs/4.6.0/admin/metrics/index.html | 7 +-
content/docs/4.6.0/admin/perf/index.html | 7 +-
content/docs/4.6.0/admin/placement/index.html | 7 +-
content/docs/4.6.0/admin/upgrade/index.html | 7 +-
.../docs/4.6.0/api/distributedlog-api/index.html | 7 +-
content/docs/4.6.0/api/ledger-adv-api/index.html | 7 +-
content/docs/4.6.0/api/ledger-api/index.html | 7 +-
content/docs/4.6.0/api/overview/index.html | 7 +-
content/docs/4.6.0/deployment/dcos/index.html | 7 +-
.../docs/4.6.0/deployment/kubernetes/index.html | 7 +-
content/docs/4.6.0/deployment/manual/index.html | 7 +-
content/docs/4.6.0/development/codebase/index.html | 7 +-
content/docs/4.6.0/development/protocol/index.html | 7 +-
.../docs/4.6.0/getting-started/concepts/index.html | 7 +-
.../4.6.0/getting-started/installation/index.html | 13 +-
.../4.6.0/getting-started/run-locally/index.html | 7 +-
content/docs/4.6.0/overview/overview/index.html | 7 +-
.../docs/4.6.0/overview/releaseNotes/index.html | 7 +-
.../4.6.0/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.6.0/reference/cli/index.html | 7 +-
content/docs/4.6.0/reference/config/index.html | 7 +-
content/docs/4.6.0/reference/metrics/index.html | 7 +-
content/docs/4.6.0/security/overview/index.html | 7 +-
content/docs/4.6.0/security/sasl/index.html | 7 +-
content/docs/4.6.0/security/tls/index.html | 7 +-
content/docs/4.6.0/security/zookeeper/index.html | 7 +-
content/docs/4.6.1/admin/autorecovery/index.html | 7 +-
content/docs/4.6.1/admin/bookies/index.html | 7 +-
.../docs/4.6.1/admin/geo-replication/index.html | 7 +-
content/docs/4.6.1/admin/http/index.html | 7 +-
content/docs/4.6.1/admin/metrics/index.html | 7 +-
content/docs/4.6.1/admin/perf/index.html | 7 +-
content/docs/4.6.1/admin/placement/index.html | 7 +-
content/docs/4.6.1/admin/upgrade/index.html | 7 +-
.../docs/4.6.1/api/distributedlog-api/index.html | 7 +-
content/docs/4.6.1/api/ledger-adv-api/index.html | 7 +-
content/docs/4.6.1/api/ledger-api/index.html | 7 +-
content/docs/4.6.1/api/overview/index.html | 7 +-
content/docs/4.6.1/deployment/dcos/index.html | 7 +-
.../docs/4.6.1/deployment/kubernetes/index.html | 7 +-
content/docs/4.6.1/deployment/manual/index.html | 7 +-
content/docs/4.6.1/development/codebase/index.html | 7 +-
content/docs/4.6.1/development/protocol/index.html | 7 +-
.../docs/4.6.1/getting-started/concepts/index.html | 7 +-
.../4.6.1/getting-started/installation/index.html | 13 +-
.../4.6.1/getting-started/run-locally/index.html | 7 +-
content/docs/4.6.1/overview/overview/index.html | 7 +-
.../docs/4.6.1/overview/releaseNotes/index.html | 7 +-
.../4.6.1/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.6.1/reference/cli/index.html | 7 +-
content/docs/4.6.1/reference/config/index.html | 7 +-
content/docs/4.6.1/reference/metrics/index.html | 7 +-
content/docs/4.6.1/security/overview/index.html | 7 +-
content/docs/4.6.1/security/sasl/index.html | 7 +-
content/docs/4.6.1/security/tls/index.html | 7 +-
content/docs/4.6.1/security/zookeeper/index.html | 7 +-
content/docs/4.6.2/admin/autorecovery/index.html | 7 +-
content/docs/4.6.2/admin/bookies/index.html | 7 +-
.../docs/4.6.2/admin/geo-replication/index.html | 7 +-
content/docs/4.6.2/admin/http/index.html | 7 +-
content/docs/4.6.2/admin/metrics/index.html | 7 +-
content/docs/4.6.2/admin/perf/index.html | 7 +-
content/docs/4.6.2/admin/placement/index.html | 7 +-
content/docs/4.6.2/admin/upgrade/index.html | 7 +-
.../docs/4.6.2/api/distributedlog-api/index.html | 7 +-
content/docs/4.6.2/api/ledger-adv-api/index.html | 7 +-
content/docs/4.6.2/api/ledger-api/index.html | 7 +-
content/docs/4.6.2/api/overview/index.html | 7 +-
content/docs/4.6.2/deployment/dcos/index.html | 7 +-
.../docs/4.6.2/deployment/kubernetes/index.html | 7 +-
content/docs/4.6.2/deployment/manual/index.html | 7 +-
content/docs/4.6.2/development/codebase/index.html | 7 +-
content/docs/4.6.2/development/protocol/index.html | 7 +-
.../docs/4.6.2/getting-started/concepts/index.html | 7 +-
.../4.6.2/getting-started/installation/index.html | 13 +-
.../4.6.2/getting-started/run-locally/index.html | 7 +-
content/docs/4.6.2/overview/overview/index.html | 7 +-
.../docs/4.6.2/overview/releaseNotes/index.html | 7 +-
.../4.6.2/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.6.2/reference/cli/index.html | 7 +-
content/docs/4.6.2/reference/config/index.html | 7 +-
content/docs/4.6.2/reference/metrics/index.html | 7 +-
content/docs/4.6.2/security/overview/index.html | 7 +-
content/docs/4.6.2/security/sasl/index.html | 7 +-
content/docs/4.6.2/security/tls/index.html | 7 +-
content/docs/4.6.2/security/zookeeper/index.html | 7 +-
content/docs/4.7.0/admin/autorecovery/index.html | 7 +-
content/docs/4.7.0/admin/bookies/index.html | 7 +-
.../docs/4.7.0/admin/geo-replication/index.html | 7 +-
content/docs/4.7.0/admin/http/index.html | 7 +-
content/docs/4.7.0/admin/metrics/index.html | 7 +-
content/docs/4.7.0/admin/perf/index.html | 7 +-
content/docs/4.7.0/admin/placement/index.html | 7 +-
content/docs/4.7.0/admin/upgrade/index.html | 7 +-
.../docs/4.7.0/api/distributedlog-api/index.html | 7 +-
content/docs/4.7.0/api/ledger-adv-api/index.html | 7 +-
content/docs/4.7.0/api/ledger-api/index.html | 7 +-
content/docs/4.7.0/api/overview/index.html | 7 +-
content/docs/4.7.0/deployment/dcos/index.html | 7 +-
.../docs/4.7.0/deployment/kubernetes/index.html | 7 +-
content/docs/4.7.0/deployment/manual/index.html | 7 +-
content/docs/4.7.0/development/codebase/index.html | 7 +-
content/docs/4.7.0/development/protocol/index.html | 7 +-
.../docs/4.7.0/getting-started/concepts/index.html | 7 +-
.../4.7.0/getting-started/installation/index.html | 13 +-
.../4.7.0/getting-started/run-locally/index.html | 7 +-
content/docs/4.7.0/overview/overview/index.html | 7 +-
.../docs/4.7.0/overview/releaseNotes/index.html | 7 +-
.../4.7.0/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.7.0/reference/cli/index.html | 7 +-
content/docs/4.7.0/reference/config/index.html | 7 +-
content/docs/4.7.0/reference/metrics/index.html | 7 +-
content/docs/4.7.0/security/overview/index.html | 7 +-
content/docs/4.7.0/security/sasl/index.html | 7 +-
content/docs/4.7.0/security/tls/index.html | 7 +-
content/docs/4.7.0/security/zookeeper/index.html | 7 +-
content/docs/4.7.1/admin/autorecovery/index.html | 7 +-
content/docs/4.7.1/admin/bookies/index.html | 7 +-
.../docs/4.7.1/admin/geo-replication/index.html | 7 +-
content/docs/4.7.1/admin/http/index.html | 7 +-
content/docs/4.7.1/admin/metrics/index.html | 7 +-
content/docs/4.7.1/admin/perf/index.html | 7 +-
content/docs/4.7.1/admin/placement/index.html | 7 +-
content/docs/4.7.1/admin/upgrade/index.html | 7 +-
.../docs/4.7.1/api/distributedlog-api/index.html | 7 +-
content/docs/4.7.1/api/ledger-adv-api/index.html | 7 +-
content/docs/4.7.1/api/ledger-api/index.html | 7 +-
content/docs/4.7.1/api/overview/index.html | 7 +-
content/docs/4.7.1/deployment/dcos/index.html | 7 +-
.../docs/4.7.1/deployment/kubernetes/index.html | 7 +-
content/docs/4.7.1/deployment/manual/index.html | 7 +-
content/docs/4.7.1/development/codebase/index.html | 7 +-
content/docs/4.7.1/development/protocol/index.html | 7 +-
.../docs/4.7.1/getting-started/concepts/index.html | 7 +-
.../4.7.1/getting-started/installation/index.html | 13 +-
.../4.7.1/getting-started/run-locally/index.html | 7 +-
content/docs/4.7.1/overview/overview/index.html | 7 +-
.../docs/4.7.1/overview/releaseNotes/index.html | 7 +-
.../4.7.1/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.7.1/reference/cli/index.html | 7 +-
content/docs/4.7.1/reference/config/index.html | 7 +-
content/docs/4.7.1/reference/metrics/index.html | 7 +-
content/docs/4.7.1/security/overview/index.html | 7 +-
content/docs/4.7.1/security/sasl/index.html | 7 +-
content/docs/4.7.1/security/tls/index.html | 7 +-
content/docs/4.7.1/security/zookeeper/index.html | 7 +-
content/docs/4.7.2/admin/autorecovery/index.html | 7 +-
content/docs/4.7.2/admin/bookies/index.html | 7 +-
.../docs/4.7.2/admin/geo-replication/index.html | 7 +-
content/docs/4.7.2/admin/http/index.html | 7 +-
content/docs/4.7.2/admin/metrics/index.html | 7 +-
content/docs/4.7.2/admin/perf/index.html | 7 +-
content/docs/4.7.2/admin/placement/index.html | 7 +-
content/docs/4.7.2/admin/upgrade/index.html | 7 +-
.../docs/4.7.2/api/distributedlog-api/index.html | 7 +-
content/docs/4.7.2/api/ledger-adv-api/index.html | 7 +-
content/docs/4.7.2/api/ledger-api/index.html | 7 +-
content/docs/4.7.2/api/overview/index.html | 7 +-
content/docs/4.7.2/deployment/dcos/index.html | 7 +-
.../docs/4.7.2/deployment/kubernetes/index.html | 7 +-
content/docs/4.7.2/deployment/manual/index.html | 7 +-
content/docs/4.7.2/development/codebase/index.html | 7 +-
content/docs/4.7.2/development/protocol/index.html | 7 +-
.../docs/4.7.2/getting-started/concepts/index.html | 7 +-
.../4.7.2/getting-started/installation/index.html | 13 +-
.../4.7.2/getting-started/run-locally/index.html | 7 +-
content/docs/4.7.2/overview/overview/index.html | 7 +-
.../docs/4.7.2/overview/releaseNotes/index.html | 7 +-
.../4.7.2/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.7.2/reference/cli/index.html | 7 +-
content/docs/4.7.2/reference/config/index.html | 7 +-
content/docs/4.7.2/reference/metrics/index.html | 7 +-
content/docs/4.7.2/security/overview/index.html | 7 +-
content/docs/4.7.2/security/sasl/index.html | 7 +-
content/docs/4.7.2/security/tls/index.html | 7 +-
content/docs/4.7.2/security/zookeeper/index.html | 7 +-
content/docs/4.7.3/admin/autorecovery/index.html | 7 +-
content/docs/4.7.3/admin/bookies/index.html | 7 +-
.../docs/4.7.3/admin/geo-replication/index.html | 7 +-
content/docs/4.7.3/admin/http/index.html | 7 +-
content/docs/4.7.3/admin/metrics/index.html | 7 +-
content/docs/4.7.3/admin/perf/index.html | 7 +-
content/docs/4.7.3/admin/placement/index.html | 7 +-
content/docs/4.7.3/admin/upgrade/index.html | 7 +-
.../docs/4.7.3/api/distributedlog-api/index.html | 7 +-
content/docs/4.7.3/api/ledger-adv-api/index.html | 7 +-
content/docs/4.7.3/api/ledger-api/index.html | 7 +-
content/docs/4.7.3/api/overview/index.html | 7 +-
content/docs/4.7.3/deployment/dcos/index.html | 7 +-
.../docs/4.7.3/deployment/kubernetes/index.html | 7 +-
content/docs/4.7.3/deployment/manual/index.html | 7 +-
content/docs/4.7.3/development/codebase/index.html | 7 +-
content/docs/4.7.3/development/protocol/index.html | 7 +-
.../docs/4.7.3/getting-started/concepts/index.html | 7 +-
.../4.7.3/getting-started/installation/index.html | 13 +-
.../4.7.3/getting-started/run-locally/index.html | 7 +-
content/docs/4.7.3/overview/overview/index.html | 7 +-
.../docs/4.7.3/overview/releaseNotes/index.html | 7 +-
.../4.7.3/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.7.3/reference/cli/index.html | 7 +-
content/docs/4.7.3/reference/config/index.html | 7 +-
content/docs/4.7.3/reference/metrics/index.html | 7 +-
content/docs/4.7.3/security/overview/index.html | 7 +-
content/docs/4.7.3/security/sasl/index.html | 7 +-
content/docs/4.7.3/security/tls/index.html | 7 +-
content/docs/4.7.3/security/zookeeper/index.html | 7 +-
content/docs/4.8.0/admin/autorecovery/index.html | 7 +-
content/docs/4.8.0/admin/bookies/index.html | 7 +-
.../docs/4.8.0/admin/geo-replication/index.html | 7 +-
content/docs/4.8.0/admin/http/index.html | 7 +-
content/docs/4.8.0/admin/metrics/index.html | 7 +-
content/docs/4.8.0/admin/perf/index.html | 7 +-
content/docs/4.8.0/admin/placement/index.html | 7 +-
content/docs/4.8.0/admin/upgrade/index.html | 7 +-
.../docs/4.8.0/api/distributedlog-api/index.html | 7 +-
content/docs/4.8.0/api/ledger-adv-api/index.html | 7 +-
content/docs/4.8.0/api/ledger-api/index.html | 7 +-
content/docs/4.8.0/api/overview/index.html | 7 +-
content/docs/4.8.0/deployment/dcos/index.html | 7 +-
.../docs/4.8.0/deployment/kubernetes/index.html | 7 +-
content/docs/4.8.0/deployment/manual/index.html | 7 +-
content/docs/4.8.0/development/codebase/index.html | 7 +-
content/docs/4.8.0/development/protocol/index.html | 7 +-
.../docs/4.8.0/getting-started/concepts/index.html | 7 +-
.../4.8.0/getting-started/installation/index.html | 13 +-
.../4.8.0/getting-started/run-locally/index.html | 7 +-
content/docs/4.8.0/overview/overview/index.html | 7 +-
.../docs/4.8.0/overview/releaseNotes/index.html | 7 +-
.../4.8.0/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.8.0/reference/cli/index.html | 7 +-
content/docs/4.8.0/reference/config/index.html | 7 +-
content/docs/4.8.0/reference/metrics/index.html | 7 +-
content/docs/4.8.0/security/overview/index.html | 7 +-
content/docs/4.8.0/security/sasl/index.html | 7 +-
content/docs/4.8.0/security/tls/index.html | 7 +-
content/docs/4.8.0/security/zookeeper/index.html | 7 +-
content/docs/4.8.1/admin/autorecovery/index.html | 7 +-
content/docs/4.8.1/admin/bookies/index.html | 7 +-
.../docs/4.8.1/admin/geo-replication/index.html | 7 +-
content/docs/4.8.1/admin/http/index.html | 7 +-
content/docs/4.8.1/admin/metrics/index.html | 7 +-
content/docs/4.8.1/admin/perf/index.html | 7 +-
content/docs/4.8.1/admin/placement/index.html | 7 +-
content/docs/4.8.1/admin/upgrade/index.html | 7 +-
.../docs/4.8.1/api/distributedlog-api/index.html | 7 +-
content/docs/4.8.1/api/ledger-adv-api/index.html | 7 +-
content/docs/4.8.1/api/ledger-api/index.html | 7 +-
content/docs/4.8.1/api/overview/index.html | 7 +-
content/docs/4.8.1/deployment/dcos/index.html | 7 +-
.../docs/4.8.1/deployment/kubernetes/index.html | 7 +-
content/docs/4.8.1/deployment/manual/index.html | 7 +-
content/docs/4.8.1/development/codebase/index.html | 7 +-
content/docs/4.8.1/development/protocol/index.html | 7 +-
.../docs/4.8.1/getting-started/concepts/index.html | 7 +-
.../4.8.1/getting-started/installation/index.html | 13 +-
.../4.8.1/getting-started/run-locally/index.html | 7 +-
content/docs/4.8.1/overview/overview/index.html | 7 +-
.../docs/4.8.1/overview/releaseNotes/index.html | 7 +-
.../4.8.1/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.8.1/reference/cli/index.html | 7 +-
content/docs/4.8.1/reference/config/index.html | 7 +-
content/docs/4.8.1/reference/metrics/index.html | 7 +-
content/docs/4.8.1/security/overview/index.html | 7 +-
content/docs/4.8.1/security/sasl/index.html | 7 +-
content/docs/4.8.1/security/tls/index.html | 7 +-
content/docs/4.8.1/security/zookeeper/index.html | 7 +-
content/docs/4.8.2/admin/autorecovery/index.html | 7 +-
content/docs/4.8.2/admin/bookies/index.html | 7 +-
.../docs/4.8.2/admin/geo-replication/index.html | 7 +-
content/docs/4.8.2/admin/http/index.html | 7 +-
content/docs/4.8.2/admin/metrics/index.html | 7 +-
content/docs/4.8.2/admin/perf/index.html | 7 +-
content/docs/4.8.2/admin/placement/index.html | 7 +-
content/docs/4.8.2/admin/upgrade/index.html | 7 +-
.../docs/4.8.2/api/distributedlog-api/index.html | 11 +-
content/docs/4.8.2/api/ledger-adv-api/index.html | 7 +-
content/docs/4.8.2/api/ledger-api/index.html | 15 +-
content/docs/4.8.2/api/overview/index.html | 7 +-
content/docs/4.8.2/deployment/dcos/index.html | 9 +-
.../docs/4.8.2/deployment/kubernetes/index.html | 7 +-
content/docs/4.8.2/deployment/manual/index.html | 7 +-
content/docs/4.8.2/development/codebase/index.html | 7 +-
content/docs/4.8.2/development/protocol/index.html | 7 +-
.../docs/4.8.2/getting-started/concepts/index.html | 7 +-
.../4.8.2/getting-started/installation/index.html | 13 +-
.../4.8.2/getting-started/run-locally/index.html | 7 +-
content/docs/4.8.2/overview/overview/index.html | 9 +-
.../docs/4.8.2/overview/releaseNotes/index.html | 7 +-
.../4.8.2/overview/releaseNotesTemplate/index.html | 9 +-
content/docs/4.8.2/reference/cli/index.html | 7 +-
content/docs/4.8.2/reference/config/index.html | 7 +-
content/docs/4.8.2/reference/metrics/index.html | 7 +-
content/docs/4.8.2/security/overview/index.html | 7 +-
content/docs/4.8.2/security/sasl/index.html | 7 +-
content/docs/4.8.2/security/tls/index.html | 7 +-
content/docs/4.8.2/security/zookeeper/index.html | 7 +-
content/docs/4.9.0/admin/autorecovery/index.html | 7 +-
content/docs/4.9.0/admin/bookies/index.html | 7 +-
.../docs/4.9.0/admin/geo-replication/index.html | 7 +-
content/docs/4.9.0/admin/http/index.html | 7 +-
content/docs/4.9.0/admin/metrics/index.html | 7 +-
content/docs/4.9.0/admin/perf/index.html | 7 +-
content/docs/4.9.0/admin/placement/index.html | 7 +-
content/docs/4.9.0/admin/upgrade/index.html | 7 +-
.../docs/4.9.0/api/distributedlog-api/index.html | 7 +-
content/docs/4.9.0/api/ledger-adv-api/index.html | 7 +-
content/docs/4.9.0/api/ledger-api/index.html | 7 +-
content/docs/4.9.0/api/overview/index.html | 7 +-
content/docs/4.9.0/deployment/dcos/index.html | 7 +-
.../docs/4.9.0/deployment/kubernetes/index.html | 7 +-
content/docs/4.9.0/deployment/manual/index.html | 7 +-
content/docs/4.9.0/development/codebase/index.html | 7 +-
content/docs/4.9.0/development/protocol/index.html | 7 +-
.../docs/4.9.0/getting-started/concepts/index.html | 7 +-
.../4.9.0/getting-started/installation/index.html | 13 +-
.../4.9.0/getting-started/run-locally/index.html | 7 +-
content/docs/4.9.0/overview/overview/index.html | 7 +-
.../docs/4.9.0/overview/releaseNotes/index.html | 7 +-
.../4.9.0/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.9.0/reference/cli/index.html | 7 +-
content/docs/4.9.0/reference/config/index.html | 7 +-
content/docs/4.9.0/reference/metrics/index.html | 7 +-
content/docs/4.9.0/security/overview/index.html | 7 +-
content/docs/4.9.0/security/sasl/index.html | 7 +-
content/docs/4.9.0/security/tls/index.html | 7 +-
content/docs/4.9.0/security/zookeeper/index.html | 7 +-
content/docs/4.9.1/admin/autorecovery/index.html | 7 +-
content/docs/4.9.1/admin/bookies/index.html | 7 +-
.../docs/4.9.1/admin/geo-replication/index.html | 7 +-
content/docs/4.9.1/admin/http/index.html | 7 +-
content/docs/4.9.1/admin/metrics/index.html | 7 +-
content/docs/4.9.1/admin/perf/index.html | 7 +-
content/docs/4.9.1/admin/placement/index.html | 7 +-
content/docs/4.9.1/admin/upgrade/index.html | 7 +-
.../docs/4.9.1/api/distributedlog-api/index.html | 7 +-
content/docs/4.9.1/api/ledger-adv-api/index.html | 7 +-
content/docs/4.9.1/api/ledger-api/index.html | 7 +-
content/docs/4.9.1/api/overview/index.html | 7 +-
content/docs/4.9.1/deployment/dcos/index.html | 7 +-
.../docs/4.9.1/deployment/kubernetes/index.html | 7 +-
content/docs/4.9.1/deployment/manual/index.html | 7 +-
content/docs/4.9.1/development/codebase/index.html | 7 +-
content/docs/4.9.1/development/protocol/index.html | 7 +-
.../docs/4.9.1/getting-started/concepts/index.html | 7 +-
.../4.9.1/getting-started/installation/index.html | 13 +-
.../4.9.1/getting-started/run-locally/index.html | 7 +-
content/docs/4.9.1/overview/overview/index.html | 7 +-
.../docs/4.9.1/overview/releaseNotes/index.html | 7 +-
.../4.9.1/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.9.1/reference/cli/index.html | 7 +-
content/docs/4.9.1/reference/config/index.html | 7 +-
content/docs/4.9.1/reference/metrics/index.html | 7 +-
content/docs/4.9.1/security/overview/index.html | 7 +-
content/docs/4.9.1/security/sasl/index.html | 7 +-
content/docs/4.9.1/security/tls/index.html | 7 +-
content/docs/4.9.1/security/zookeeper/index.html | 7 +-
content/docs/4.9.2/admin/autorecovery/index.html | 7 +-
content/docs/4.9.2/admin/bookies/index.html | 7 +-
.../docs/4.9.2/admin/geo-replication/index.html | 7 +-
content/docs/4.9.2/admin/http/index.html | 7 +-
content/docs/4.9.2/admin/metrics/index.html | 7 +-
content/docs/4.9.2/admin/perf/index.html | 7 +-
content/docs/4.9.2/admin/placement/index.html | 7 +-
content/docs/4.9.2/admin/upgrade/index.html | 7 +-
.../docs/4.9.2/api/distributedlog-api/index.html | 7 +-
content/docs/4.9.2/api/ledger-adv-api/index.html | 7 +-
content/docs/4.9.2/api/ledger-api/index.html | 7 +-
content/docs/4.9.2/api/overview/index.html | 7 +-
content/docs/4.9.2/deployment/dcos/index.html | 7 +-
.../docs/4.9.2/deployment/kubernetes/index.html | 7 +-
content/docs/4.9.2/deployment/manual/index.html | 7 +-
content/docs/4.9.2/development/codebase/index.html | 7 +-
content/docs/4.9.2/development/protocol/index.html | 7 +-
.../docs/4.9.2/getting-started/concepts/index.html | 7 +-
.../4.9.2/getting-started/installation/index.html | 13 +-
.../4.9.2/getting-started/run-locally/index.html | 7 +-
content/docs/4.9.2/overview/overview/index.html | 7 +-
.../docs/4.9.2/overview/releaseNotes/index.html | 7 +-
.../4.9.2/overview/releaseNotesTemplate/index.html | 7 +-
content/docs/4.9.2/reference/cli/index.html | 7 +-
content/docs/4.9.2/reference/config/index.html | 7 +-
content/docs/4.9.2/reference/metrics/index.html | 7 +-
content/docs/4.9.2/security/overview/index.html | 7 +-
content/docs/4.9.2/security/sasl/index.html | 7 +-
content/docs/4.9.2/security/tls/index.html | 7 +-
content/docs/4.9.2/security/zookeeper/index.html | 7 +-
content/docs/latest/admin/autorecovery/index.html | 7 +-
content/docs/latest/admin/bookies/index.html | 7 +-
.../docs/latest/admin/geo-replication/index.html | 7 +-
content/docs/latest/admin/http/index.html | 7 +-
content/docs/latest/admin/metrics/index.html | 7 +-
content/docs/latest/admin/perf/index.html | 7 +-
content/docs/latest/admin/placement/index.html | 7 +-
content/docs/latest/admin/upgrade/index.html | 7 +-
.../docs/latest/api/distributedlog-api/index.html | 11 +-
content/docs/latest/api/ledger-adv-api/index.html | 7 +-
content/docs/latest/api/ledger-api/index.html | 15 +-
content/docs/latest/api/overview/index.html | 7 +-
content/docs/latest/deployment/dcos/index.html | 9 +-
.../docs/latest/deployment/kubernetes/index.html | 7 +-
content/docs/latest/deployment/manual/index.html | 7 +-
.../docs/latest/development/codebase/index.html | 7 +-
.../docs/latest/development/protocol/index.html | 7 +-
.../latest/getting-started/concepts/index.html | 7 +-
.../latest/getting-started/installation/index.html | 13 +-
.../latest/getting-started/run-locally/index.html | 7 +-
content/docs/latest/overview/overview/index.html | 17 +-
.../docs/latest/overview/releaseNotes/index.html | 19 +-
.../overview/releaseNotesTemplate/index.html | 15 +-
content/docs/latest/reference/cli/index.html | 7 +-
content/docs/latest/reference/config/index.html | 7 +-
content/docs/latest/reference/metrics/index.html | 7 +-
content/docs/latest/security/overview/index.html | 7 +-
content/docs/latest/security/sasl/index.html | 7 +-
content/docs/latest/security/tls/index.html | 7 +-
content/docs/latest/security/zookeeper/index.html | 7 +-
content/index.html | 7 +-
content/project/bylaws/index.html | 7 +-
content/project/privacy/index.html | 7 +-
content/project/who/index.html | 7 +-
content/releases/index.html | 53 +-
1158 files changed, 285896 insertions(+), 596 deletions(-)
diff --git a/content/bps/BP-20-github-workflow-for-bookkeeper-proposals/index.html b/content/bps/BP-20-github-workflow-for-bookkeeper-proposals/index.html
index 75588ba..8fa2389 100644
--- a/content/bps/BP-20-github-workflow-for-bookkeeper-proposals/index.html
+++ b/content/bps/BP-20-github-workflow-for-bookkeeper-proposals/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-21-new-api-close-inconsistencies/index.html b/content/bps/BP-21-new-api-close-inconsistencies/index.html
index 0d1548a..8b12ab6 100644
--- a/content/bps/BP-21-new-api-close-inconsistencies/index.html
+++ b/content/bps/BP-21-new-api-close-inconsistencies/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-22-separate-closing-ledgers-from-opening-ledgers/index.html b/content/bps/BP-22-separate-closing-ledgers-from-opening-ledgers/index.html
index fff7316..ea55f23 100644
--- a/content/bps/BP-22-separate-closing-ledgers-from-opening-ledgers/index.html
+++ b/content/bps/BP-22-separate-closing-ledgers-from-opening-ledgers/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-25-MovingChecksumToProto/index.html b/content/bps/BP-25-MovingChecksumToProto/index.html
index 30e7efe..04295d5 100644
--- a/content/bps/BP-25-MovingChecksumToProto/index.html
+++ b/content/bps/BP-25-MovingChecksumToProto/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-26-move-distributedlog-core-library/index.html b/content/bps/BP-26-move-distributedlog-core-library/index.html
index 825b2ef..cbb1216 100644
--- a/content/bps/BP-26-move-distributedlog-core-library/index.html
+++ b/content/bps/BP-26-move-distributedlog-core-library/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-27-new-bookkeeper-cli/index.html b/content/bps/BP-27-new-bookkeeper-cli/index.html
index ef5a8cc..a01cb0c 100644
--- a/content/bps/BP-27-new-bookkeeper-cli/index.html
+++ b/content/bps/BP-27-new-bookkeeper-cli/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-28-etcd-as-metadata-store/index.html b/content/bps/BP-28-etcd-as-metadata-store/index.html
index ec4ea22..46da819 100644
--- a/content/bps/BP-28-etcd-as-metadata-store/index.html
+++ b/content/bps/BP-28-etcd-as-metadata-store/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-29-metadata-store-api-module/index.html b/content/bps/BP-29-metadata-store-api-module/index.html
index f014ae3..cb5473d 100644
--- a/content/bps/BP-29-metadata-store-api-module/index.html
+++ b/content/bps/BP-29-metadata-store-api-module/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-32-advisory-write-close/index.html b/content/bps/BP-32-advisory-write-close/index.html
index a6450a6..766fbe4 100644
--- a/content/bps/BP-32-advisory-write-close/index.html
+++ b/content/bps/BP-32-advisory-write-close/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-33-building-official-docker-imags/index.html b/content/bps/BP-33-building-official-docker-imags/index.html
index c8f4c38..682ed33 100644
--- a/content/bps/BP-33-building-official-docker-imags/index.html
+++ b/content/bps/BP-33-building-official-docker-imags/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-34-cluster-metadata-checker/index.html b/content/bps/BP-34-cluster-metadata-checker/index.html
index 81a55c7..0a74292 100644
--- a/content/bps/BP-34-cluster-metadata-checker/index.html
+++ b/content/bps/BP-34-cluster-metadata-checker/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-35-128-bits-support/index.html b/content/bps/BP-35-128-bits-support/index.html
index 8d930f5..d1c4f23 100644
--- a/content/bps/BP-35-128-bits-support/index.html
+++ b/content/bps/BP-35-128-bits-support/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-36-stats-documentation-annotation/index.html b/content/bps/BP-36-stats-documentation-annotation/index.html
index 94b293e..62c7801 100644
--- a/content/bps/BP-36-stats-documentation-annotation/index.html
+++ b/content/bps/BP-36-stats-documentation-annotation/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-37-conf-documentation/index.html b/content/bps/BP-37-conf-documentation/index.html
index 851ba91..9c61d31 100644
--- a/content/bps/BP-37-conf-documentation/index.html
+++ b/content/bps/BP-37-conf-documentation/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/bps/BP-template/index.html b/content/bps/BP-template/index.html
index 2e7283e..06be312 100644
--- a/content/bps/BP-template/index.html
+++ b/content/bps/BP-template/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/bookkeeper_proposals/index.html b/content/community/bookkeeper_proposals/index.html
index 0b50aac..5d34526 100644
--- a/content/community/bookkeeper_proposals/index.html
+++ b/content/community/bookkeeper_proposals/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/coding_guide/index.html b/content/community/coding_guide/index.html
index 7048690..82625eb 100644
--- a/content/community/coding_guide/index.html
+++ b/content/community/coding_guide/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/contributing/index.html b/content/community/contributing/index.html
index baa82e0..9144dd1 100644
--- a/content/community/contributing/index.html
+++ b/content/community/contributing/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/issue-report/index.html b/content/community/issue-report/index.html
index 6284af9..f7282be 100644
--- a/content/community/issue-report/index.html
+++ b/content/community/issue-report/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/licensing/index.html b/content/community/licensing/index.html
index 2af059a..ec90e0f 100644
--- a/content/community/licensing/index.html
+++ b/content/community/licensing/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/mailing-lists/index.html b/content/community/mailing-lists/index.html
index 800a4e1..423adb4 100644
--- a/content/community/mailing-lists/index.html
+++ b/content/community/mailing-lists/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/meeting/index.html b/content/community/meeting/index.html
index 84b29f9..ff1b108 100644
--- a/content/community/meeting/index.html
+++ b/content/community/meeting/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/presentations/index.html b/content/community/presentations/index.html
index bf51fca..857a77e 100644
--- a/content/community/presentations/index.html
+++ b/content/community/presentations/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/release_guide/index.html b/content/community/release_guide/index.html
index 519f487..74b2241 100644
--- a/content/community/release_guide/index.html
+++ b/content/community/release_guide/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/releases/index.html b/content/community/releases/index.html
index f839e20..932ebf2 100644
--- a/content/community/releases/index.html
+++ b/content/community/releases/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/slack/index.html b/content/community/slack/index.html
index a01c783..62fc723 100644
--- a/content/community/slack/index.html
+++ b/content/community/slack/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/community/testing/index.html b/content/community/testing/index.html
index b90bde2..9e56bcb 100644
--- a/content/community/testing/index.html
+++ b/content/community/testing/index.html
@@ -44,7 +44,7 @@
<a class="navbar-link">Documentation</a>
<div class="navbar-dropdown is-boxed">
<a class="navbar-item" href="/docs/latest/overview/overview">
- Version 4.10.0-SNAPSHOT
+ Version 4.11.0-SNAPSHOT
<span class="tag is-warning">Development</span>
</a>
<a class="navbar-item" href="/docs/latest/api/javadoc">
@@ -55,6 +55,11 @@
</a>
<hr class="dropdown-divider">
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
<a class="navbar-item" href="/docs/4.9.2/overview/overview">
Release 4.9.2
diff --git a/content/docs/4.10.0/admin/autorecovery/index.html b/content/docs/4.10.0/admin/autorecovery/index.html
new file mode 100644
index 0000000..b9381b7
--- /dev/null
+++ b/content/docs/4.10.0/admin/autorecovery/index.html
@@ -0,0 +1,848 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - Using AutoRecovery</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">Using AutoRecovery</h1>
+ </div>
+ </div>
+
+ </nav>
+
+
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+ <p>When a <span class="pop" id="bookie-popover">bookie</span> crashes, all <span class="pop" id="ledger-popover">ledgers</span> on that bookie become under-replicated. In order to bring all ledgers in your BookKeeper cluster back to full replication, you’ll need to <em>recover</em> the data from any offline bookies. There are two ways to recover bookies’ data:</p>
+
+<ol>
+ <li>Using <a href="#manual-recovery">manual recovery</a></li>
+ <li>Automatically, using <a href="#autorecovery"><em>AutoRecovery</em></a></li>
+</ol>
+
+<h2 id="manual-recovery">Manual recovery</h2>
+
+<p>You can manually recover failed bookies using the <a href="../../reference/cli"><code class="highlighter-rouge">bookkeeper</code></a> command-line tool. You need to specify:</p>
+
+<ul>
+ <li>the <code class="highlighter-rouge">shell recover</code> option</li>
+ <li>an IP and port for your BookKeeper cluster’s ZooKeeper ensemble</li>
+ <li>the IP and port for the failed bookie</li>
+</ul>
+
+<p>Here’s an example:</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell recover <span class="se">\</span>
+ zk1.example.com:2181 <span class="se">\ </span><span class="c"># IP and port for ZooKeeper</span>
+ 192.168.1.10:3181 <span class="c"># IP and port for the failed bookie</span>
+</code></pre></div></div>
+
+<p>If you wish, you can also specify which bookie you’d like to rereplicate to. Here’s an example:</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell recover <span class="se">\</span>
+ zk1.example.com:2181 <span class="se">\ </span><span class="c"># IP and port for ZooKeeper</span>
+ 192.168.1.10:3181 <span class="se">\ </span> <span class="c"># IP and port for the failed bookie</span>
+ 192.168.1.11:3181 <span class="c"># IP and port for the bookie to rereplicate to</span>
+</code></pre></div></div>
+
+<h3 id="the-manual-recovery-process">The manual recovery process</h3>
+
+<p>When you initiate a manual recovery process, the following happens:</p>
+
+<ol>
+ <li>The client (the process running ) reads the metadata of active ledgers from ZooKeeper.</li>
+ <li>The ledgers that contain fragments from the failed bookie in their ensemble are selected.</li>
+ <li>A recovery process is initiated for each ledger in this list and the rereplication process is run for each ledger.</li>
+ <li>Once all the ledgers are marked as fully replicated, bookie recovery is finished.</li>
+</ol>
+
+<h2 id="autorecovery">AutoRecovery</h2>
+
+<p>AutoRecovery is a process that:</p>
+
+<ul>
+ <li>automatically detects when a <span class="pop" id="bookie-popover">bookie</span> in your BookKeeper cluster has become unavailable and then</li>
+ <li>rereplicates all the <span class="pop" id="ledger-popover">ledgers</span> that were stored on that bookie.</li>
+</ul>
+
+<p>AutoRecovery can be run in two ways:</p>
+
+<ol>
+ <li>On dedicated nodes in your BookKeeper cluster</li>
+ <li>On the same machines on which your bookies are running</li>
+</ol>
+
+<h2 id="running-autorecovery">Running AutoRecovery</h2>
+
+<p>You can start up AutoRecovery using the <a href="../../reference/cli#bookkeeper-autorecovery"><code class="highlighter-rouge">autorecovery</code></a> command of the <a href="../../reference/cli"><code class="highlighter-rouge">bookkeeper</code></a> CLI tool.</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper autorecovery
+</code></pre></div></div>
+
+<blockquote>
+ <p>The most important thing to ensure when starting up AutoRecovery is that the ZooKeeper connection string specified by the <a href="../../reference/config#zkServers"><code class="highlighter-rouge">zkServers</code></a> parameter points to the right ZooKeeper cluster.</p>
+</blockquote>
+
+<p>If you start up AutoRecovery on a machine that is already running a bookie, then the AutoRecovery process will run alongside the bookie on a separate thread.</p>
+
+<p>You can also start up AutoRecovery on a fresh machine if you’d like to create a dedicated cluster of AutoRecovery nodes.</p>
+
+<h2 id="configuration">Configuration</h2>
+
+<p>There are a handful of AutoRecovery-related configs in the <a href="../../reference/config"><code class="highlighter-rouge">bk_server.conf</code></a> configuration file. For a listing of those configs, see <a href="../../reference/config#autorecovery-settings">AutoRecovery settings</a>.</p>
+
+<h2 id="disable-autorecovery">Disable AutoRecovery</h2>
+
+<p>You can disable AutoRecovery at any time, for example during maintenance. Disabling AutoRecovery ensures that bookies’ data isn’t unnecessarily rereplicated when the bookie is only taken down for a short period of time, for example when the bookie is being updated or the configuration if being changed.</p>
+
+<p>You can disable AutoRecover using the <a href="../../reference/cli#bookkeeper-shell-autorecovery"><code class="highlighter-rouge">bookkeeper</code></a> CLI tool:</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell autorecovery <span class="nt">-disable</span>
+</code></pre></div></div>
+
+<p>Once disabled, you can reenable AutoRecovery using the <a href="../../reference/cli#bookkeeper-shell-autorecovery"><code class="highlighter-rouge">enable</code></a> shell command:</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell autorecovery <span class="nt">-enable</span>
+</code></pre></div></div>
+
+<h2 id="autorecovery-architecture">AutoRecovery architecture</h2>
+
+<p>AutoRecovery has two components:</p>
+
+<ol>
+ <li>The <a href="#auditor"><strong>auditor</strong></a> (see the <a href="../../api/javadoc/org/apache/bookkeeper/replication/Auditor.html"><code class="highlighter-rouge">Auditor</code></a> class) is a singleton node that watches bookies to see if they fail and creates rereplication tasks for the ledgers on failed bookies.</li>
+ <li>The <a href="#replication-worker"><strong>replication worker</strong></a> (see the <a href="../../api/javadoc/org/apache/bookkeeper/replication/ReplicationWorker.html"><code class="highlighter-rouge">ReplicationWorker</code></a> class) runs on each bookie and executes rereplication tasks provided by the auditor.</li>
+</ol>
+
+<p>Both of these components run as threads in the <a href="../../api/javadoc/org/apache/bookkeeper/replication/AutoRecoveryMain"><code class="highlighter-rouge">AutoRecoveryMain</code></a> process, which runs on each bookie in the cluster. All recovery nodes participate in leader election—using ZooKeeper—to decide which node becomes the auditor. Nodes that fail to become the auditor watch the elected auditor and run an election process again if they see that the auditor node has failed.</p>
+
+<h3 id="auditor">Auditor</h3>
+
+<p>The auditor watches all bookies in the cluster that are registered with ZooKeeper. Bookies register with ZooKeeper at startup. If the bookie crashes or is killed, the bookie’s registration in ZooKeeper disappears and the auditor is notified of the change in the list of registered bookies.</p>
+
+<p>When the auditor sees that a bookie has disappeared, it immediately scans the complete <span class="pop" id="ledger-popover">ledger</span> list to find ledgers that have data stored on the failed bookie. Once it has a list of ledgers for that bookie, the auditor will publish a rereplication task for each ledger under the <code class="highlighter-rouge">/underreplicated/</code> <a href="https://zookeeper.apache.org/doc/current/zookeeperOver.html">znode</a> in ZooKeeper.</p>
+
+<h3 id="replication-worker">Replication Worker</h3>
+
+<p>Each replication worker watches for tasks being published by the auditor on the <code class="highlighter-rouge">/underreplicated/</code> znode in ZooKeeper. When a new task appears, the replication worker will try to get a lock on it. If it cannot acquire the lock, it will try the next entry. The locks are implemented using ZooKeeper ephemeral znodes.</p>
+
+<p>The replication worker will scan through the rereplication task’s ledger for fragments of which its local bookie is not a member. When it finds fragments matching this criterion, it will replicate the entries of that fragment to the local bookie. If, after this process, the ledger is fully replicated, the ledgers entry under /underreplicated/ is deleted, and the lock is released. If there is a problem replicating, or there are still fragments in the ledger which are still underreplica [...]
+
+<p>If the replication worker finds a fragment which needs rereplication, but does not have a defined endpoint (i.e. the final fragment of a ledger currently being written to), it will wait for a grace period before attempting rereplication. If the fragment needing rereplication still does not have a defined endpoint, the ledger is fenced and rereplication then takes place.</p>
+
+<p>This avoids the situation in which a client is writing to a ledger and one of the bookies goes down, but the client has not written an entry to that bookie before rereplication takes place. The client could continue writing to the old fragment, even though the ensemble for the fragment had changed. This could lead to data loss. Fencing prevents this scenario from happening. In the normal case, the client will try to write to the failed bookie within the grace period, and will have sta [...]
+
+<p>You can configure this grace period using the <a href="../../reference/config#openLedgerRereplicationGracePeriod"><code class="highlighter-rouge">openLedgerRereplicationGracePeriod</code></a> parameter.</p>
+
+<h3 id="the-rereplication-process">The rereplication process</h3>
+
+<p>The ledger rereplication process happens in these steps:</p>
+
+<ol>
+ <li>The client goes through all ledger fragments in the ledger, selecting those that contain the failed bookie.</li>
+ <li>A recovery process is initiated for each ledger fragment in this list.
+ <ol>
+ <li>The client selects a bookie to which all entries in the ledger fragment will be replicated; In the case of autorecovery, this will always be the local bookie.</li>
+ <li>The client reads entries that belong to the ledger fragment from other bookies in the ensemble and writes them to the selected bookie.</li>
+ <li>Once all entries have been replicated, the zookeeper metadata for the fragment is updated to reflect the new ensemble.</li>
+ <li>The fragment is marked as fully replicated in the recovery tool.</li>
+ </ol>
+ </li>
+ <li>Once all ledger fragments are marked as fully replicated, the ledger is marked as fully replicated.</li>
+</ol>
+
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">Using AutoRecovery</h2>
+ <ul class="section-nav">
+<li class="toc-entry toc-h2"><a href="#manual-recovery">Manual recovery</a></li>
+<li class="toc-entry toc-h3"><a href="#the-manual-recovery-process">The manual recovery process</a></li>
+<li class="toc-entry toc-h2"><a href="#autorecovery">AutoRecovery</a></li>
+<li class="toc-entry toc-h2"><a href="#running-autorecovery">Running AutoRecovery</a></li>
+<li class="toc-entry toc-h2"><a href="#configuration">Configuration</a></li>
+<li class="toc-entry toc-h2"><a href="#disable-autorecovery">Disable AutoRecovery</a></li>
+<li class="toc-entry toc-h2"><a href="#autorecovery-architecture">AutoRecovery architecture</a></li>
+<li class="toc-entry toc-h3"><a href="#auditor">Auditor</a></li>
+<li class="toc-entry toc-h3"><a href="#replication-worker">Replication Worker</a></li>
+<li class="toc-entry toc-h3"><a href="#the-rereplication-process">The rereplication process</a></li>
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/bookies/index.html b/content/docs/4.10.0/admin/bookies/index.html
new file mode 100644
index 0000000..a491ece
--- /dev/null
+++ b/content/docs/4.10.0/admin/bookies/index.html
@@ -0,0 +1,927 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - BookKeeper administration</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">BookKeeper administration</h1>
+ </div>
+ </div>
+
+ </nav>
+
+ <h2 class="subtitle">A guide to deploying and administering BookKeeper</h2>
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+ <p>This document is a guide to deploying, administering, and maintaining BookKeeper. It also discusses <a href="#best-practices">best practices</a> and <a href="#common-problems">common problems</a>.</p>
+
+<h2 id="requirements">Requirements</h2>
+
+<p>A typical BookKeeper installation consists of an ensemble of <span class="pop" id="bookie-popover">bookies</span> and a ZooKeeper quorum. The exact number of bookies depends on the quorum mode that you choose, desired throughput, and the number of clients using the installation simultaneously.</p>
+
+<p>The minimum number of bookies depends on the type of installation:</p>
+
+<ul>
+ <li>For <em>self-verifying</em> entries you should run at least three bookies. In this mode, clients store a message authentication code along with each <span class="pop" id="entry-popover">entry</span>.</li>
+ <li>For <em>generic</em> entries you should run at least four</li>
+</ul>
+
+<p>There is no upper limit on the number of bookies that you can run in a single ensemble.</p>
+
+<h3 id="performance">Performance</h3>
+
+<p>To achieve optimal performance, BookKeeper requires each server to have at least two disks. It’s possible to run a bookie with a single disk but performance will be significantly degraded.</p>
+
+<h3 id="zookeeper">ZooKeeper</h3>
+
+<p>There is no constraint on the number of ZooKeeper nodes you can run with BookKeeper. A single machine running ZooKeeper in <a href="https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_InstallingSingleMode">standalone mode</a> is sufficient for BookKeeper, although for the sake of higher resilience we recommend running ZooKeeper in <a href="https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_RunningReplicatedZooKeeper">quorum mode</a> with multiple servers.</p>
+
+<h2 id="starting-and-stopping-bookies">Starting and stopping bookies</h2>
+
+<p>You can run bookies either in the foreground or in the background, using <a href="https://en.wikipedia.org/wiki/Nohup">nohup</a>. You can also run <a href="#local-bookie">local bookies</a> for development purposes.</p>
+
+<p>To start a bookie in the foreground, use the <a href="../../reference/cli#bookkeeper-bookie"><code class="highlighter-rouge">bookie</code></a> command of the <a href="../../reference/cli#bookkeeper"><code class="highlighter-rouge">bookkeeper</code></a> CLI tool:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper bookie
+</code></pre></div></div>
+
+<p>To start a bookie in the background, use the <a href="../../reference/cli#bookkeeper-daemon.sh"><code class="highlighter-rouge">bookkeeper-daemon.sh</code></a> script and run <code class="highlighter-rouge">start bookie</code>:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper-daemon.sh start bookie
+</code></pre></div></div>
+
+<h3 id="local-bookies">Local bookies</h3>
+
+<p>The instructions above showed you how to run bookies intended for production use. If you’d like to experiment with ensembles of bookies locally, you can use the <a href="../../reference/cli#bookkeeper-localbookie"><code class="highlighter-rouge">localbookie</code></a> command of the <code class="highlighter-rouge">bookkeeper</code> CLI tool and specify the number of bookies you’d like to run.</p>
+
+<p>This would spin up a local ensemble of 6 bookies:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper localbookie 6
+</code></pre></div></div>
+
+<blockquote>
+ <p>When you run a local bookie ensemble, all bookies run in a single JVM process.</p>
+</blockquote>
+
+<h2 id="configuring-bookies">Configuring bookies</h2>
+
+<p>There’s a wide variety of parameters that you can set in the bookie configuration file in <code class="highlighter-rouge">bookkeeper-server/conf/bk_server.conf</code> of your <a href="../../reference/config">BookKeeper installation</a>. A full listing can be found in <a href="../../reference/config">Bookie configuration</a>.</p>
+
+<p>Some of the more important parameters to be aware of:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Parameter</th>
+ <th style="text-align: left">Description</th>
+ <th style="text-align: left">Default</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">bookiePort</code></td>
+ <td style="text-align: left">The TCP port that the bookie listens on</td>
+ <td style="text-align: left"><code class="highlighter-rouge">3181</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">zkServers</code></td>
+ <td style="text-align: left">A comma-separated list of ZooKeeper servers in <code class="highlighter-rouge">hostname:port</code> format</td>
+ <td style="text-align: left"><code class="highlighter-rouge">localhost:2181</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">journalDirectory</code></td>
+ <td style="text-align: left">The directory where the <a href="../../getting-started/concepts#log-device">log device</a> stores the bookie’s write-ahead log (WAL)</td>
+ <td style="text-align: left"><code class="highlighter-rouge">/tmp/bk-txn</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">ledgerDirectories</code></td>
+ <td style="text-align: left">The directories where the <a href="../../getting-started/concepts#ledger-device">ledger device</a> stores the bookie’s ledger entries (as a comma-separated list)</td>
+ <td style="text-align: left"><code class="highlighter-rouge">/tmp/bk-data</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<blockquote>
+ <p>Ideally, the directories specified <code class="highlighter-rouge">journalDirectory</code> and <code class="highlighter-rouge">ledgerDirectories</code> should be on difference devices.</p>
+</blockquote>
+
+<h2 id="logging">Logging</h2>
+
+<p>BookKeeper uses <a href="http://www.slf4j.org/">slf4j</a> for logging, with <a href="https://logging.apache.org/log4j/2.x/">log4j</a> bindings enabled by default.</p>
+
+<p>To enable logging for a bookie, create a <code class="highlighter-rouge">log4j.properties</code> file and point the <code class="highlighter-rouge">BOOKIE_LOG_CONF</code> environment variable to the configuration file. Here’s an example:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">export </span><span class="nv">BOOKIE_LOG_CONF</span><span class="o">=</span>/some/path/log4j.properties
+<span class="nv">$ </span>bin/bookkeeper bookie
+</code></pre></div></div>
+
+<h2 id="upgrading">Upgrading</h2>
+
+<p>From time to time you may need to make changes to the filesystem layout of bookies—changes that are incompatible with previous versions of BookKeeper and require that directories used with previous versions are upgraded. If a filesystem upgrade is required when updating BookKeeper, the bookie will fail to start and return an error like this:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2017-05-25 10:41:50,494 - ERROR - [main:Bookie@246] - Directory layout version is less than 3, upgrade needed
+</code></pre></div></div>
+
+<p>BookKeeper provides a utility for upgrading the filesystem. You can perform an upgrade using the <a href="../../reference/cli#bookkeeper-upgrade"><code class="highlighter-rouge">upgrade</code></a> command of the <code class="highlighter-rouge">bookkeeper</code> CLI tool. When running <code class="highlighter-rouge">bookkeeper upgrade</code> you need to specify one of three flags:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Flag</th>
+ <th style="text-align: left">Action</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">--upgrade</code></td>
+ <td style="text-align: left">Performs an upgrade</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">--rollback</code></td>
+ <td style="text-align: left">Performs a rollback to the initial filesystem version</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">--finalize</code></td>
+ <td style="text-align: left">Marks the upgrade as complete</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="upgrade-pattern">Upgrade pattern</h3>
+
+<p>A standard upgrade pattern is to run an upgrade…</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper upgrade <span class="nt">--upgrade</span>
+</code></pre></div></div>
+
+<p>…then check that everything is working normally, then kill the bookie. If everything is okay, finalize the upgrade…</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper upgrade <span class="nt">--finalize</span>
+</code></pre></div></div>
+
+<p>…and then restart the server:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper bookie
+</code></pre></div></div>
+
+<p>If something has gone wrong, you can always perform a rollback:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper upgrade <span class="nt">--rollback</span>
+</code></pre></div></div>
+
+<h2 id="formatting">Formatting</h2>
+
+<p>You can format bookie metadata in ZooKeeper using the <a href="../../reference/cli#bookkeeper-shell-metaformat"><code class="highlighter-rouge">metaformat</code></a> command of the <a href="../../reference/cli#the-bookkeeper-shell">BookKeeper shell</a>.</p>
+
+<p>By default, formatting is done in interactive mode, which prompts you to confirm the format operation if old data exists. You can disable confirmation using the <code class="highlighter-rouge">-nonInteractive</code> flag. If old data does exist, the format operation will abort <em>unless</em> you set the <code class="highlighter-rouge">-force</code> flag. Here’s an example:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell metaformat
+</code></pre></div></div>
+
+<p>You can format the local filesystem data on a bookie using the <a href="../../reference/cli#bookkeeper-shell-bookieformat"><code class="highlighter-rouge">bookieformat</code></a> command on each bookie. Here’s an example:</p>
+
+<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell bookieformat
+</code></pre></div></div>
+
+<blockquote>
+ <p>The <code class="highlighter-rouge">-force</code> and <code class="highlighter-rouge">-nonInteractive</code> flags are also available for the <code class="highlighter-rouge">bookieformat</code> command.</p>
+</blockquote>
+
+<h2 id="autorecovery">AutoRecovery</h2>
+
+<p>For a guide to AutoRecovery in BookKeeper, see <a href="../autorecovery">this doc</a>.</p>
+
+<h2 id="missing-disks-or-directories">Missing disks or directories</h2>
+
+<p>Accidentally replacing disks or removing directories can cause a bookie to fail while trying to read a ledger fragment that, according to the ledger metadata, exists on the bookie. For this reason, when a bookie is started for the first time, its disk configuration is fixed for the lifetime of that bookie. Any change to its disk configuration, such as a crashed disk or an accidental configuration change, will result in the bookie being unable to start. That will throw an error like this:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2017-05-29 18:19:13,790 - ERROR - [main:BookieServer314] – Exception running bookie server : @
+org.apache.bookkeeper.bookie.BookieException$InvalidCookieException
+.......at org.apache.bookkeeper.bookie.Cookie.verify(Cookie.java:82)
+.......at org.apache.bookkeeper.bookie.Bookie.checkEnvironment(Bookie.java:275)
+.......at org.apache.bookkeeper.bookie.Bookie.<init>(Bookie.java:351)
+</code></pre></div></div>
+
+<p>If the change was the result of an accidental configuration change, the change can be reverted and the bookie can be restarted. However, if the change <em>cannot</em> be reverted, such as is the case when you want to add a new disk or replace a disk, the bookie must be wiped and then all its data re-replicated onto it.</p>
+
+<ol>
+ <li>Increment the <a href="../../reference/config#bookiePort"><code class="highlighter-rouge">bookiePort</code></a> parameter in the <a href="../../reference/config"><code class="highlighter-rouge">bk_server.conf</code></a></li>
+ <li>Ensure that all directories specified by <a href="../../reference/config#journalDirectory"><code class="highlighter-rouge">journalDirectory</code></a> and <a href="../../reference/config#ledgerDirectories"><code class="highlighter-rouge">ledgerDirectories</code></a> are empty.</li>
+ <li><a href="#starting-and-stopping-bookies">Start the bookie</a>.</li>
+ <li>
+ <p>Run the following command to re-replicate the data:</p>
+
+ <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell recover <span class="se">\</span>
+ <zkserver> <span class="se">\</span>
+ <oldbookie> <span class="se">\</span>
+ <newbookie>
+</code></pre></div> </div>
+
+ <p>The ZooKeeper server, old bookie, and new bookie, are all identified by their external IP and <code class="highlighter-rouge">bookiePort</code> (3181 by default). Here’s an example:</p>
+
+ <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>bin/bookkeeper shell recover <span class="se">\</span>
+ zk1.example.com <span class="se">\</span>
+ 192.168.1.10:3181 <span class="se">\</span>
+ 192.168.1.10:3181
+</code></pre></div> </div>
+
+ <p>See the <a href="../autorecovery">AutoRecovery</a> documentation for more info on the re-replication process.</p>
+ </li>
+</ol>
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">BookKeeper administration</h2>
+ <ul class="section-nav">
+<li class="toc-entry toc-h2"><a href="#requirements">Requirements</a></li>
+<li class="toc-entry toc-h3"><a href="#performance">Performance</a></li>
+<li class="toc-entry toc-h3"><a href="#zookeeper">ZooKeeper</a></li>
+<li class="toc-entry toc-h2"><a href="#starting-and-stopping-bookies">Starting and stopping bookies</a></li>
+<li class="toc-entry toc-h3"><a href="#local-bookies">Local bookies</a></li>
+<li class="toc-entry toc-h2"><a href="#configuring-bookies">Configuring bookies</a></li>
+<li class="toc-entry toc-h2"><a href="#logging">Logging</a></li>
+<li class="toc-entry toc-h2"><a href="#upgrading">Upgrading</a></li>
+<li class="toc-entry toc-h3"><a href="#upgrade-pattern">Upgrade pattern</a></li>
+<li class="toc-entry toc-h2"><a href="#formatting">Formatting</a></li>
+<li class="toc-entry toc-h2"><a href="#autorecovery">AutoRecovery</a></li>
+<li class="toc-entry toc-h2"><a href="#missing-disks-or-directories">Missing disks or directories</a></li>
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/geo-replication/index.html b/content/docs/4.10.0/admin/geo-replication/index.html
new file mode 100644
index 0000000..0f749c0
--- /dev/null
+++ b/content/docs/4.10.0/admin/geo-replication/index.html
@@ -0,0 +1,723 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - Geo-replication</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">Geo-replication</h1>
+ </div>
+ </div>
+
+ </nav>
+
+ <h2 class="subtitle">Replicate data across BookKeeper clusters</h2>
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+ <p><em>Geo-replication</em> is the replication of data across BookKeeper clusters. In order to enable geo-replication for a group of BookKeeper clusters,</p>
+
+<h2 id="global-zookeeper">Global ZooKeeper</h2>
+
+<p>Setting up a global ZooKeeper quorum is a lot like setting up a cluster-specific quorum. The crucial difference is that</p>
+
+<h3 id="geo-replication-across-three-clusters">Geo-replication across three clusters</h3>
+
+<p>Let’s say that you want to set up geo-replication across clusters in regions A, B, and C. First, the BookKeeper clusters in each region must have their own local (cluster-specific) ZooKeeper quorum.</p>
+
+<blockquote>
+ <p>BookKeeper clusters use global ZooKeeper only for metadata storage. Traffic from bookies to ZooKeeper should thus be fairly light in general.</p>
+</blockquote>
+
+<p>The crucial difference between using cluster-specific ZooKeeper and global ZooKeeper is that <span class="pop" id="bookie-popover">bookies</span> is that you need to point all bookies to use the global ZooKeeper setup.</p>
+
+<h2 id="region-aware-placement-polocy">Region-aware placement polocy</h2>
+
+<h2 id="autorecovery">Autorecovery</h2>
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">Geo-replication</h2>
+ <ul class="section-nav">
+<li class="toc-entry toc-h2"><a href="#global-zookeeper">Global ZooKeeper</a></li>
+<li class="toc-entry toc-h3"><a href="#geo-replication-across-three-clusters">Geo-replication across three clusters</a></li>
+<li class="toc-entry toc-h2"><a href="#region-aware-placement-polocy">Region-aware placement polocy</a></li>
+<li class="toc-entry toc-h2"><a href="#autorecovery">Autorecovery</a></li>
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/http/index.html b/content/docs/4.10.0/admin/http/index.html
new file mode 100644
index 0000000..4054805
--- /dev/null
+++ b/content/docs/4.10.0/admin/http/index.html
@@ -0,0 +1,2032 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - BookKeeper Admin REST API</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">BookKeeper Admin REST API</h1>
+ </div>
+ </div>
+
+ </nav>
+
+
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+ <p>This document introduces BookKeeper HTTP endpoints, which can be used for BookKeeper administration.
+To use this feature, set <code class="highlighter-rouge">httpServerEnabled</code> to <code class="highlighter-rouge">true</code> in file <code class="highlighter-rouge">conf/bk_server.conf</code>.</p>
+
+<h2 id="all-the-endpoints">All the endpoints</h2>
+
+<p>Currently all the HTTP endpoints could be divided into these 4 components:</p>
+<ol>
+ <li>Heartbeat: heartbeat for a specific bookie.</li>
+ <li>Config: doing the server configuration for a specific bookie.</li>
+ <li>Ledger: HTTP endpoints related to ledgers.</li>
+ <li>Bookie: HTTP endpoints related to bookies.</li>
+ <li>AutoRecovery: HTTP endpoints related to auto recovery.</li>
+</ol>
+
+<h2 id="heartbeat">Heartbeat</h2>
+
+<h3 id="endpoint-heartbeat">Endpoint: /heartbeat</h3>
+<ul>
+ <li>Method: GET</li>
+ <li>Description: Get heartbeat status for a specific bookie</li>
+ <li>Response:</li>
+</ul>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="config">Config</h2>
+
+<h3 id="endpoint-apiv1configserver_config">Endpoint: /api/v1/config/server_config</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get value of all configured values overridden on local server config</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+ <li>Method: PUT
+ <ul>
+ <li>Description: Update a local server config</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">configName</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">Configuration name(key)</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">configValue</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">Configuration value(value)</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"configName1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"configValue1"</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"configName2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"configValue2"</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h2 id="config-1">Config</h2>
+
+<h3 id="endpoint-metrics">Endpoint: /metrics</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get all metrics by calling <code class="highlighter-rouge">writeAllMetrics()</code> of <code class="highlighter-rouge">statsProvider</code> internally</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h2 id="ledger">Ledger</h2>
+
+<h3 id="endpoint-apiv1ledgerdeleteledger_idledger_id">Endpoint: /api/v1/ledger/delete/?ledger_id=<ledger_id></h3>
+<ol>
+ <li>Method: DELETE
+ <ul>
+ <li>Description: Delete a ledger.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">ledger_id</td>
+ <td style="text-align: left">Long</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">ledger id of the ledger.</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1ledgerlistprint_metadatametadata">Endpoint: /api/v1/ledger/list/?print_metadata=<metadata></h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: List all the ledgers.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">print_metadata</td>
+ <td style="text-align: left">Boolean</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">whether print out metadata</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"ledgerId1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ledgerMetadata1"</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"ledgerId2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ledgerMetadata2"</span><span class="p">,</span><span class="w">
+ </span><span class="err">...</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1ledgermetadataledger_idledger_id">Endpoint: /api/v1/ledger/metadata/?ledger_id=<ledger_id></h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get the metadata of a ledger.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">ledger_id</td>
+ <td style="text-align: left">Long</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">ledger id of the ledger.</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"ledgerId1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ledgerMetadata1"</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1ledgerreadledger_idledger_idstart_entry_idstart_entry_idend_entry_idend_entry_id">Endpoint: /api/v1/ledger/read/?ledger_id=<ledger_id>&start_entry_id=<start_entry_id>&end_entry_id=<end_entry_id></h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Read a range of entries from ledger.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">ledger_id</td>
+ <td style="text-align: left">Long</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">ledger id of the ledger.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">start_entry_id</td>
+ <td style="text-align: left">Long</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">start entry id of read range.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">end_entry_id</td>
+ <td style="text-align: left">Long</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">end entry id of read range.</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"entryId1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"entry content 1"</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"entryId2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"entry content 2"</span><span class="p">,</span><span class="w">
+ </span><span class="err">...</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h2 id="bookie">Bookie</h2>
+
+<h3 id="endpoint-apiv1bookielist_bookiestypetypeprint_hostnameshostnames">Endpoint: /api/v1/bookie/list_bookies/?type=<type>&print_hostnames=<hostnames></h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get all the available bookies.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">type</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">value: “rw” or “ro” , list read-write/read-only bookies.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">print_hostnames</td>
+ <td style="text-align: left">Boolean</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">whether print hostname of bookies.</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"bookieSocketAddress1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hostname1"</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"bookieSocketAddress2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hostname2"</span><span class="p">,</span><span class="w">
+ </span><span class="err">...</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookielist_bookie_info">Endpoint: /api/v1/bookie/list_bookie_info</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get bookies disk usage info of this cluster.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"bookieAddress"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="err">free</span><span class="p">:</span><span class="w"> </span><span class="err">xxx</span><span class="p">,</span><span class="w"> </span><span class="err">total</span><span class="p">:</span><span class="w"> </span><span class="err">xxx</span><span class="p">},</span><span class="w">
+ </span><span class="s2">"bookieAddress"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="err">free</span><span class="p">:</span><span class="w"> </span><span class="err">xxx</span><span class="p">,</span><span class="w"> </span><span class="err">total</span><span class="p">:</span><span class="w"> </span><span class="err">xxx</span><span class="p">},</span><span class="w">
+ </span><span class="err">...</span><span class="w">
+ </span><span class="s2">"clusterInfo"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="err">total_free</span><span class="p">:</span><span class="w"> </span><span class="err">xxx</span><span class="p">,</span><span class="w"> </span><span class="err">total</span><span class="p">:</span><span class="w"> </span><span class="err">xxx</span><span class="p">}</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookielast_log_mark">Endpoint: /api/v1/bookie/last_log_mark</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get the last log marker.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="err">JournalId</span><span class="mi">1</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="err">position</span><span class="mi">1</span><span class="p">,</span><span class="w">
+ </span><span class="err">JournalId</span><span class="mi">2</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="err">position</span><span class="mi">2</span><span class="p">,</span><span class="w">
+ </span><span class="err">...</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookielist_disk_filefile_typetype">Endpoint: /api/v1/bookie/list_disk_file/?file_type=<type></h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get all the files on disk of current bookie.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">type</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">file type: journal/entrylog/index.</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"journal files"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"filename1 filename2 ..."</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"entrylog files"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"filename1 filename2..."</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"index files"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"filename1 filename2 ..."</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookieexpand_storage">Endpoint: /api/v1/bookie/expand_storage</h3>
+<ol>
+ <li>Method: PUT
+ <ul>
+ <li>Description: Expand storage for a bookie.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookiegc">Endpoint: /api/v1/bookie/gc</h3>
+<ol>
+ <li>Method: PUT
+ <ul>
+ <li>Description: trigger gc for this bookie.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+ <li>Method: GET
+ <ul>
+ <li>Description: whether force triggered Garbage Collection is running or not for this bookie. true for is running.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"is_in_force_gc"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"false"</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookiegc_details">Endpoint: /api/v1/bookie/gc_details</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: get details of Garbage Collection Thread, like whether it is in compacting, last compaction time, compaction counter, etc.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"forceCompacting"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"majorCompacting"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"minorCompacting"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"lastMajorCompactionTime"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">1544578144944</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"lastMinorCompactionTime"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">1544578144944</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"majorCompactionCounter"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"minorCompactionCounter"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w">
+ </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookiestate">Endpoint: /api/v1/bookie/state</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Exposes the current state of bookie</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"running"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"readOnly"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"shuttingDown"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
+ </span><span class="s2">"availableForHighPriorityWrites"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1bookieis_ready">Endpoint: /api/v1/bookie/is_ready</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Return true if the bookie is ready</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">503</td>
+ <td style="text-align: left">Bookie is not ready</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>Body: <empty></empty></li>
+ </ul>
+ </li>
+</ol>
+
+<h2 id="auto-recovery">Auto recovery</h2>
+
+<h3 id="endpoint-apiv1autorecoverybookie">Endpoint: /api/v1/autorecovery/bookie/</h3>
+<ol>
+ <li>Method: PUT
+ <ul>
+ <li>Description: Ledger data recovery for failed bookie</li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"bookie_src"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"bookie_src1"</span><span class="p">,</span><span class="w"> </span><span class="s2">"bookie_src2"</span><span class="err">...</span><span class="w"> </span><span class="p">],</span><span class="w">
+ </span><span class="s2">"bookie_dest"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"bookie_dest1"</span><span class="p">,</span><span class="w"> </span><span class="s2">"bookie_dest2"</span><span class="err">...</span><span class="w"> </span><span class="p">],</span><span class="w">
+ </span><span class="s2">"delete_cookie"</span><span class="p">:</span><span class="w"> </span><span class="err"><bool_value></span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">bookie_src</td>
+ <td style="text-align: left">Strings</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">bookie source to recovery</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">bookie_dest</td>
+ <td style="text-align: left">Strings</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">bookie data recovery destination</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">delete_cookie</td>
+ <td style="text-align: left">Boolean</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">Whether delete cookie</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1autorecoverylist_under_replicated_ledgermissingreplicabookie_addressexcludingmissingreplicabookie_address">Endpoint: /api/v1/autorecovery/list_under_replicated_ledger/?missingreplica=<bookie_address>&excludingmissingreplica=<bookie_address></h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get all under replicated ledgers.</li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">missingreplica</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">missing replica bookieId</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">excludingmissingreplica</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">No</td>
+ <td style="text-align: left">exclude missing replica bookieId</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="p">[</span><span class="err">ledgerId</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="err">ledgerId</span><span class="mi">2</span><span class="err">...</span><span class="p">]</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1autorecoverywho_is_auditor">Endpoint: /api/v1/autorecovery/who_is_auditor</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get auditor bookie id.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response Body format:</p>
+
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"Auditor"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hostname/hostAddress:Port"</span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1autorecoverytrigger_audit">Endpoint: /api/v1/autorecovery/trigger_audit</h3>
+<ol>
+ <li>Method: PUT
+ <ul>
+ <li>Description: Force trigger audit by resting the lostBookieRecoveryDelay.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1autorecoverylost_bookie_recovery_delay">Endpoint: /api/v1/autorecovery/lost_bookie_recovery_delay</h3>
+<ol>
+ <li>Method: GET
+ <ul>
+ <li>Description: Get lostBookieRecoveryDelay value in seconds.</li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+ <li>Method: PUT
+ <ul>
+ <li>Description: Set lostBookieRecoveryDelay value in seconds.</li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"delay_seconds"</span><span class="p">:</span><span class="w"> </span><span class="err"><delay_seconds></span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">delay_seconds</td>
+ <td style="text-align: left">Long</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">set delay value in seconds.</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="endpoint-apiv1autorecoverydecommission">Endpoint: /api/v1/autorecovery/decommission</h3>
+<ol>
+ <li>Method: PUT
+ <ul>
+ <li>Description: Decommission Bookie, Force trigger Audit task and make sure all the ledgers stored in the decommissioning bookie are replicated.</li>
+ <li>Body:
+ <div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="w"> </span><span class="p">{</span><span class="w">
+ </span><span class="s2">"bookie_src"</span><span class="p">:</span><span class="w"> </span><span class="err"><bookie_src></span><span class="w">
+ </span><span class="p">}</span><span class="w">
+</span></code></pre></div> </div>
+ </li>
+ <li>
+ <p>Parameters:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Type</th>
+ <th style="text-align: left">Required</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">bookie_src</td>
+ <td style="text-align: left">String</td>
+ <td style="text-align: left">Yes</td>
+ <td style="text-align: left">Bookie src to decommission..</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>
+ <p>Response:</p>
+
+ <table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Code</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">200</td>
+ <td style="text-align: left">Successful operation</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">403</td>
+ <td style="text-align: left">Permission denied</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">404</td>
+ <td style="text-align: left">Not found</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">BookKeeper Admin REST API</h2>
+ <ul class="section-nav">
+<li class="toc-entry toc-h2"><a href="#all-the-endpoints">All the endpoints</a></li>
+<li class="toc-entry toc-h2"><a href="#heartbeat">Heartbeat</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-heartbeat">Endpoint: /heartbeat</a></li>
+<li class="toc-entry toc-h2"><a href="#config">Config</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1configserver_config">Endpoint: /api/v1/config/server_config</a></li>
+<li class="toc-entry toc-h2"><a href="#config-1">Config</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-metrics">Endpoint: /metrics</a></li>
+<li class="toc-entry toc-h2"><a href="#ledger">Ledger</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1ledgerdeleteledger_idledger_id">Endpoint: /api/v1/ledger/delete/?ledger_id=<ledger_id></a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1ledgerlistprint_metadatametadata">Endpoint: /api/v1/ledger/list/?print_metadata=<metadata></a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1ledgermetadataledger_idledger_id">Endpoint: /api/v1/ledger/metadata/?ledger_id=<ledger_id></a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1ledgerreadledger_idledger_idstart_entry_idstart_entry_idend_entry_idend_entry_id">Endpoint: /api/v1/ledger/read/?ledger_id=<ledger_id>&start_entry_id=<start_entry_id>&end_entry_id=<end_entry_id></a></li>
+<li class="toc-entry toc-h2"><a href="#bookie">Bookie</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookielist_bookiestypetypeprint_hostnameshostnames">Endpoint: /api/v1/bookie/list_bookies/?type=<type>&print_hostnames=<hostnames></a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookielist_bookie_info">Endpoint: /api/v1/bookie/list_bookie_info</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookielast_log_mark">Endpoint: /api/v1/bookie/last_log_mark</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookielist_disk_filefile_typetype">Endpoint: /api/v1/bookie/list_disk_file/?file_type=<type></a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookieexpand_storage">Endpoint: /api/v1/bookie/expand_storage</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookiegc">Endpoint: /api/v1/bookie/gc</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookiegc_details">Endpoint: /api/v1/bookie/gc_details</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookiestate">Endpoint: /api/v1/bookie/state</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1bookieis_ready">Endpoint: /api/v1/bookie/is_ready</a></li>
+<li class="toc-entry toc-h2"><a href="#auto-recovery">Auto recovery</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1autorecoverybookie">Endpoint: /api/v1/autorecovery/bookie/</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1autorecoverylist_under_replicated_ledgermissingreplicabookie_addressexcludingmissingreplicabookie_address">Endpoint: /api/v1/autorecovery/list_under_replicated_ledger/?missingreplica=<bookie_address>&excludingmissingreplica=<bookie_address></a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1autorecoverywho_is_auditor">Endpoint: /api/v1/autorecovery/who_is_auditor</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1autorecoverytrigger_audit">Endpoint: /api/v1/autorecovery/trigger_audit</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1autorecoverylost_bookie_recovery_delay">Endpoint: /api/v1/autorecovery/lost_bookie_recovery_delay</a></li>
+<li class="toc-entry toc-h3"><a href="#endpoint-apiv1autorecoverydecommission">Endpoint: /api/v1/autorecovery/decommission</a></li>
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/metrics/index.html b/content/docs/4.10.0/admin/metrics/index.html
new file mode 100644
index 0000000..aaeb517
--- /dev/null
+++ b/content/docs/4.10.0/admin/metrics/index.html
@@ -0,0 +1,784 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - Metric collection</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">Metric collection</h1>
+ </div>
+ </div>
+
+ </nav>
+
+
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+ <p>BookKeeper enables metrics collection through a variety of <a href="#stats-providers">stats providers</a>.</p>
+
+<blockquote>
+ <p>For a full listing of available metrics, see the <a href="../../reference/metrics">Metrics</a> reference doc.</p>
+</blockquote>
+
+<h2 id="stats-providers">Stats providers</h2>
+
+<p>BookKeeper has stats provider implementations for four five sinks:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Provider</th>
+ <th style="text-align: left">Provider class name</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left"><a href="https://mvnrepository.com/artifact/org.apache.bookkeeper.stats/codahale-metrics-provider">Codahale Metrics</a></td>
+ <td style="text-align: left"><code class="highlighter-rouge">org.apache.bookkeeper.stats.CodahaleMetricsProvider</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><a href="https://prometheus.io/">Prometheus</a></td>
+ <td style="text-align: left"><code class="highlighter-rouge">org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><a href="https://twitter.github.io/finagle/guide/Metrics.html">Finagle</a></td>
+ <td style="text-align: left"><code class="highlighter-rouge">org.apache.bookkeeper.stats.FinagleStatsProvider</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><a href="https://github.com/twitter/ostrich">Ostrich</a></td>
+ <td style="text-align: left"><code class="highlighter-rouge">org.apache.bookkeeper.stats.OstrichProvider</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><a href="https://mvnrepository.com/artifact/org.apache.bookkeeper.stats/twitter-science-provider">Twitter Science Provider</a></td>
+ <td style="text-align: left"><code class="highlighter-rouge">org.apache.bookkeeper.stats.TwitterStatsProvider</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<blockquote>
+ <p>The <a href="https://github.com/apache/bookkeeper/tree/master/bookkeeper-stats-providers/codahale-metrics-provider">Codahale Metrics</a> stats provider is the default provider.</p>
+</blockquote>
+
+<h2 id="enabling-stats-providers-in-bookies">Enabling stats providers in bookies</h2>
+
+<p>There are two stats-related <a href="../../reference/config#statistics">configuration parameters</a> available for bookies:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Parameter</th>
+ <th style="text-align: left">Description</th>
+ <th style="text-align: left">Default</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">enableStatistics</code></td>
+ <td style="text-align: left">Whether statistics are enabled for the bookie</td>
+ <td style="text-align: left"><code class="highlighter-rouge">false</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><code class="highlighter-rouge">statsProviderClass</code></td>
+ <td style="text-align: left">The stats provider class used by the bookie</td>
+ <td style="text-align: left"><code class="highlighter-rouge">org.apache.bookkeeper.stats.CodahaleMetricsProvider</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>To enable stats:</p>
+
+<ul>
+ <li>set the <code class="highlighter-rouge">enableStatistics</code> parameter to <code class="highlighter-rouge">true</code></li>
+ <li>set <code class="highlighter-rouge">statsProviderClass</code> to the desired provider (see the <a href="#stats-providers">table above</a> for a listing of classes)</li>
+</ul>
+
+<!-- ## Enabling stats in the bookkeeper library
+
+TODO
+-->
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">Metric collection</h2>
+ <ul class="section-nav">
+<li class="toc-entry toc-h2"><a href="#stats-providers">Stats providers</a></li>
+<li class="toc-entry toc-h2"><a href="#enabling-stats-providers-in-bookies">Enabling stats providers in bookies</a></li>
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/perf/index.html b/content/docs/4.10.0/admin/perf/index.html
new file mode 100644
index 0000000..36f762a
--- /dev/null
+++ b/content/docs/4.10.0/admin/perf/index.html
@@ -0,0 +1,701 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - Performance tuning</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">Performance tuning</h1>
+ </div>
+ </div>
+
+ </nav>
+
+
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">Performance tuning</h2>
+ <ul class="section-nav">
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/placement/index.html b/content/docs/4.10.0/admin/placement/index.html
new file mode 100644
index 0000000..0028d4d
--- /dev/null
+++ b/content/docs/4.10.0/admin/placement/index.html
@@ -0,0 +1,701 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - Customized placement policies</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">Customized placement policies</h1>
+ </div>
+ </div>
+
+ </nav>
+
+
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">Customized placement policies</h2>
+ <ul class="section-nav">
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/admin/upgrade/index.html b/content/docs/4.10.0/admin/upgrade/index.html
new file mode 100644
index 0000000..9449277
--- /dev/null
+++ b/content/docs/4.10.0/admin/upgrade/index.html
@@ -0,0 +1,1053 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - Upgrade</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Administration
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../admin/bookies">
+ BookKeeper administration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/autorecovery">
+ AutoRecovery
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/metrics">
+ Metric collection
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/upgrade">
+ Upgrade
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../admin/http">
+ BookKeeper Admin REST API
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ API
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../api/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-api">
+ Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/ledger-adv-api">
+ Advanced Ledger API
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/distributedlog-api">
+ DistributedLog
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../api/javadoc">
+ Java API Docs
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Security
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../security/overview">
+ Overview
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/tls">
+ TLS Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/sasl">
+ SASL Authentication
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../security/zookeeper">
+ ZooKeeper Authentication
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Development
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../development/protocol">
+ BookKeeper protocol
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Reference
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../reference/config">
+ Configuration
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/cli">
+ Command-line tools
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../reference/metrics">
+ Metrics
+ </a>
+ </li>
+
+ </ul>
+
+</aside>
+
+
+ </div>
+ </div>
+
+ <div class="column is-8 bk-docs-block">
+ <header class="docs-title">
+ <nav class="level bk-level">
+ <div class="level-left">
+ <div class="level-item">
+ <h1 class="title">Upgrade</h1>
+ </div>
+ </div>
+
+ </nav>
+
+
+ </header>
+
+ <hr />
+
+ <div class="content">
+ <section class="bk-main-content">
+ <blockquote>
+ <p>If you have questions about upgrades (or need help), please feel free to reach out to us by <a href="/community/mailing-lists">mailing list</a> or <a href="/community/slack">Slack Channel</a>.</p>
+</blockquote>
+
+<h2 id="overview">Overview</h2>
+
+<p>Consider the below guidelines in preparation for upgrading.</p>
+
+<ul>
+ <li>Always back up all your configuration files before upgrading.</li>
+ <li>Read through the documentation and draft an upgrade plan that matches your specific requirements and environment before starting the upgrade process.
+ Put differently, don’t start working through the guide on a live cluster. Read guide entirely, make a plan, then execute the plan.</li>
+ <li>Pay careful consideration to the order in which components are upgraded. In general, you need to upgrade bookies first and then upgrade your clients.</li>
+ <li>If autorecovery is running along with bookies, you need to pay attention to the upgrade sequence.</li>
+ <li>Read the release notes carefully for each release. They contain not only information about noteworthy features, but also changes to configurations
+ that may impact your upgrade.</li>
+ <li>Always upgrade one or a small set of bookies to canary new version before upgraing all bookies in your cluster.</li>
+</ul>
+
+<h2 id="canary">Canary</h2>
+
+<p>It is wise to canary an upgraded version in one or small set of bookies before upgrading all bookies in your live cluster.</p>
+
+<p>You can follow below steps on how to canary a upgraded version:</p>
+
+<ol>
+ <li>Stop a Bookie.</li>
+ <li>Upgrade the binary and configuration.</li>
+ <li>Start the Bookie in <code class="highlighter-rouge">ReadOnly</code> mode. This can be used to verify if the Bookie of this new version can run well for read workload.</li>
+ <li>Once the Bookie is running at <code class="highlighter-rouge">ReadOnly</code> mode successfully for a while, restart the Bookie in <code class="highlighter-rouge">Write/Read</code> mode.</li>
+ <li>After step 4, the Bookie will serve both write and read traffic.</li>
+</ol>
+
+<h3 id="rollback-canaries">Rollback Canaries</h3>
+
+<p>If problems occur during canarying an upgraded version, you can simply take down the problematic Bookie node. The remain bookies in the old cluster
+will repair this problematic bookie node by autorecovery. Nothing needs to be worried about.</p>
+
+<h2 id="upgrade-steps">Upgrade Steps</h2>
+
+<p>Once you determined a version is safe to upgrade in a few nodes in your cluster, you can perform following steps to upgrade all bookies in your cluster.</p>
+
+<ol>
+ <li>Determine if autorecovery is running along with bookies. If yes, check if the clients (either new clients with new binary or old clients with new configurations)
+are allowed to talk to old bookies; if clients are not allowed to talk to old bookies, please <a href="../../reference/cli/#autorecovery-1">disable autorecovery</a> during upgrade.</li>
+ <li>Decide on performing a rolling upgrade or a downtime upgrade.</li>
+ <li>Upgrade all Bookies (more below)</li>
+ <li>If autorecovery was disabled during upgrade, <a href="../../reference/cli/#autorecovery-1">enable autorecovery</a>.</li>
+ <li>After all bookies are upgraded, build applications that use <code class="highlighter-rouge">BookKeeper client</code> against the new bookkeeper libraries and deploy the new versions.</li>
+</ol>
+
+<h3 id="upgrade-bookies">Upgrade Bookies</h3>
+
+<p>In a rolling upgrade scenario, upgrade one Bookie at a time. In a downtime upgrade scenario, take the entire cluster down, upgrade each Bookie, then start the cluster.</p>
+
+<p>For each Bookie:</p>
+
+<ol>
+ <li>Stop the bookie.</li>
+ <li>Upgrade the software (either new binary or new configuration)</li>
+ <li>Start the bookie.</li>
+</ol>
+
+<h2 id="upgrade-guides">Upgrade Guides</h2>
+
+<p>We describes the general upgrade method in Apache BookKeeper as above. We will cover the details for individual versions.</p>
+
+<h3 id="46x-to-470-upgrade">4.6.x to 4.7.0 upgrade</h3>
+
+<p>There isn’t any protocol related backward compabilities changes in 4.7.0. So you can follow the general upgrade sequence to upgrade from 4.6.x to 4.7.0.</p>
+
+<p>However, we list a list of changes that you might want to know.</p>
+
+<h4 id="common-configuration-changes">Common Configuration Changes</h4>
+
+<p>This section documents the common configuration changes that applied for both clients and servers.</p>
+
+<h5 id="new-settings">New Settings</h5>
+
+<p>Following settings are newly added in 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Default Value</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>allowShadedLedgerManagerFactoryClass</td>
+ <td>false</td>
+ <td>The allows bookkeeper client to connect to a bookkeeper cluster using a shaded ledger manager factory</td>
+ </tr>
+ <tr>
+ <td>shadedLedgerManagerFactoryClassPrefix</td>
+ <td><code class="highlighter-rouge">dlshade.</code></td>
+ <td>The shaded ledger manager factory prefix. This is used when <code class="highlighter-rouge">allowShadedLedgerManagerFactoryClass</code> is set to true</td>
+ </tr>
+ <tr>
+ <td>metadataServiceUri</td>
+ <td>null</td>
+ <td>metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location</td>
+ </tr>
+ <tr>
+ <td>permittedStartupUsers</td>
+ <td>null</td>
+ <td>The list of users are permitted to run the bookie process. Any users can run the bookie process if it is not set</td>
+ </tr>
+ </tbody>
+</table>
+
+<h5 id="deprecated-settings">Deprecated Settings</h5>
+
+<p>There are no common settings deprecated at 4.7.0.</p>
+
+<h5 id="changed-settings">Changed Settings</h5>
+
+<p>There are no common settings whose default value are changed at 4.7.0.</p>
+
+<h4 id="server-configuration-changes">Server Configuration Changes</h4>
+
+<h5 id="new-settings-1">New Settings</h5>
+
+<p>Following settings are newly added in 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Default Value</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>verifyMetadataOnGC</td>
+ <td>false</td>
+ <td>Whether the bookie is configured to double check the ledgers’ metadata prior to garbage collecting them</td>
+ </tr>
+ <tr>
+ <td>auditorLedgerVerificationPercentage</td>
+ <td>0</td>
+ <td>The percentage of a ledger (fragment)’s entries will be verified by Auditor before claiming a ledger (fragment) is missing</td>
+ </tr>
+ <tr>
+ <td>numHighPriorityWorkerThreads</td>
+ <td>8</td>
+ <td>The number of threads that should be used for high priority requests (i.e. recovery reads and adds, and fencing). If zero, reads are handled by Netty threads directly.</td>
+ </tr>
+ <tr>
+ <td>useShortHostName</td>
+ <td>false</td>
+ <td>Whether the bookie should use short hostname or <a href="https://en.wikipedia.org/wiki/Fully_qualified_domain_name">FQDN</a> hostname for registration and ledger metadata when useHostNameAsBookieID is enabled.</td>
+ </tr>
+ <tr>
+ <td>minUsableSizeForEntryLogCreation</td>
+ <td>1.2 * <code class="highlighter-rouge">logSizeLimit</code></td>
+ <td>Minimum safe usable size to be available in ledger directory for bookie to create entry log files (in bytes).</td>
+ </tr>
+ <tr>
+ <td>minUsableSizeForHighPriorityWrites</td>
+ <td>1.2 * <code class="highlighter-rouge">logSizeLimit</code></td>
+ <td>Minimum safe usable size to be available in ledger directory for bookie to accept high priority writes even it is in readonly mode.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h5 id="deprecated-settings-1">Deprecated Settings</h5>
+
+<p>Following settings are deprecated since 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>registrationManagerClass</td>
+ <td>The registration manager class used by server to discover registration manager. It is replaced by <code class="highlighter-rouge">metadataServiceUri</code>.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h5 id="changed-settings-1">Changed Settings</h5>
+
+<p>The default values of following settings are changed since 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Old Default Value</th>
+ <th>New Default Value</th>
+ <th>Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>numLongPollWorkerThreads</td>
+ <td>10</td>
+ <td>0</td>
+ <td>If the number of threads is zero or negative, bookie can fallback to use read threads for long poll. This allows not creating threads if application doesn’t use long poll feature.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h4 id="client-configuration-changes">Client Configuration Changes</h4>
+
+<h5 id="new-settings-2">New Settings</h5>
+
+<p>Following settings are newly added in 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Default Value</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>maxNumEnsembleChanges</td>
+ <td>Integer.MAX_VALUE</td>
+ <td>The max allowed ensemble change number before sealing a ledger on failures</td>
+ </tr>
+ <tr>
+ <td>timeoutMonitorIntervalSec</td>
+ <td>min(<code class="highlighter-rouge">addEntryTimeoutSec</code>, <code class="highlighter-rouge">addEntryQuorumTimeoutSec</code>, <code class="highlighter-rouge">readEntryTimeoutSec</code>)</td>
+ <td>The interval between successive executions of the operation timeout monitor, in seconds</td>
+ </tr>
+ <tr>
+ <td>ensemblePlacementPolicyOrderSlowBookies</td>
+ <td>false</td>
+ <td>Flag to enable/disable reordering slow bookies in placement policy</td>
+ </tr>
+ </tbody>
+</table>
+
+<h5 id="deprecated-settings-2">Deprecated Settings</h5>
+
+<p>Following settings are deprecated since 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>clientKeyStoreType</td>
+ <td>Replaced by <code class="highlighter-rouge">tlsKeyStoreType</code></td>
+ </tr>
+ <tr>
+ <td>clientKeyStore</td>
+ <td>Replaced by <code class="highlighter-rouge">tlsKeyStore</code></td>
+ </tr>
+ <tr>
+ <td>clientKeyStorePasswordPath</td>
+ <td>Replaced by <code class="highlighter-rouge">tlsKeyStorePasswordPath</code></td>
+ </tr>
+ <tr>
+ <td>clientTrustStoreType</td>
+ <td>Replaced by <code class="highlighter-rouge">tlsTrustStoreType</code></td>
+ </tr>
+ <tr>
+ <td>clientTrustStore</td>
+ <td>Replaced by <code class="highlighter-rouge">tlsTrustStore</code></td>
+ </tr>
+ <tr>
+ <td>clientTrustStorePasswordPath</td>
+ <td>Replaced by <code class="highlighter-rouge">tlsTrustStorePasswordPath</code></td>
+ </tr>
+ <tr>
+ <td>registrationClientClass</td>
+ <td>The registration client class used by client to discover registration service. It is replaced by <code class="highlighter-rouge">metadataServiceUri</code>.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h5 id="changed-settings-2">Changed Settings</h5>
+
+<p>The default values of following settings are changed since 4.7.0.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Old Default Value</th>
+ <th>New Default Value</th>
+ <th>Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>enableDigestTypeAutodetection</td>
+ <td>false</td>
+ <td>true</td>
+ <td>Autodetect the digest type and passwd when opening a ledger. It will ignore the provided digest type, but still verify the provided passwd.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="47x-to-48x-upgrade">4.7.x to 4.8.X upgrade</h3>
+
+<p>In 4.8.x a new feature is added to persist explicitLac in FileInfo and explicitLac entry in Journal. (Note: Currently this feature is not available if your ledgerStorageClass is DbLedgerStorage, ISSUE #1533 is going to address it) Hence current journal format version is bumped to 6 and current FileInfo header version is bumped to 1. But since default config values of ‘journalFormatVersionToWrite’ and ‘fileInfoFormatVersionToWrite’ are set to older versions, this feature is off by defa [...]
+
+<h3 id="45x-to-46x-upgrade">4.5.x to 4.6.x upgrade</h3>
+
+<p>There isn’t any protocol related backward compabilities changes in 4.6.x. So you can follow the general upgrade sequence to upgrade from 4.5.x to 4.6.x.</p>
+
+<h3 id="44x-to-45x-upgrade">4.4.x to 4.5.x upgrade</h3>
+
+<p>There isn’t any protocol related backward compabilities changes in 4.5.0. So you can follow the general upgrade sequence to upgrade from 4.4.x to 4.5.x.
+However, we list a list of things that you might want to know.</p>
+
+<ol>
+ <li>4.5.x upgrades netty from 3.x to 4.x. The memory usage pattern might be changed a bit. Netty 4 uses more direct memory. Please pay attention to your memory usage
+ and adjust the JVM settings accordingly.</li>
+ <li><code class="highlighter-rouge">multi journals</code> is a non-rollbackable feature. If you configure a bookie to use multiple journals on 4.5.x you can not roll the bookie back to use 4.4.x. You have
+ to take a bookie out and recover it if you want to rollback to 4.4.x.</li>
+</ol>
+
+<p>If you are planning to upgrade a non-secured cluster to a secured cluster enabling security features in 4.5.0, please read <a href="../../security/overview">BookKeeper Security</a> for more details.</p>
+
+ </section>
+
+
+ </div>
+ </div>
+
+ <div class="column is-2 is-hidden-mobile">
+
+
+<div class="toc">
+ <h2 class="title">Upgrade</h2>
+ <ul class="section-nav">
+<li class="toc-entry toc-h2"><a href="#overview">Overview</a></li>
+<li class="toc-entry toc-h2"><a href="#canary">Canary</a></li>
+<li class="toc-entry toc-h3"><a href="#rollback-canaries">Rollback Canaries</a></li>
+<li class="toc-entry toc-h2"><a href="#upgrade-steps">Upgrade Steps</a></li>
+<li class="toc-entry toc-h3"><a href="#upgrade-bookies">Upgrade Bookies</a></li>
+<li class="toc-entry toc-h2"><a href="#upgrade-guides">Upgrade Guides</a></li>
+<li class="toc-entry toc-h3"><a href="#46x-to-470-upgrade">4.6.x to 4.7.0 upgrade</a></li>
+<li class="toc-entry toc-h4"><a href="#common-configuration-changes">Common Configuration Changes</a></li>
+<li class="toc-entry toc-h5"><a href="#new-settings">New Settings</a></li>
+<li class="toc-entry toc-h5"><a href="#deprecated-settings">Deprecated Settings</a></li>
+<li class="toc-entry toc-h5"><a href="#changed-settings">Changed Settings</a></li>
+<li class="toc-entry toc-h4"><a href="#server-configuration-changes">Server Configuration Changes</a></li>
+<li class="toc-entry toc-h5"><a href="#new-settings-1">New Settings</a></li>
+<li class="toc-entry toc-h5"><a href="#deprecated-settings-1">Deprecated Settings</a></li>
+<li class="toc-entry toc-h5"><a href="#changed-settings-1">Changed Settings</a></li>
+<li class="toc-entry toc-h4"><a href="#client-configuration-changes">Client Configuration Changes</a></li>
+<li class="toc-entry toc-h5"><a href="#new-settings-2">New Settings</a></li>
+<li class="toc-entry toc-h5"><a href="#deprecated-settings-2">Deprecated Settings</a></li>
+<li class="toc-entry toc-h5"><a href="#changed-settings-2">Changed Settings</a></li>
+<li class="toc-entry toc-h3"><a href="#47x-to-48x-upgrade">4.7.x to 4.8.X upgrade</a></li>
+<li class="toc-entry toc-h3"><a href="#45x-to-46x-upgrade">4.5.x to 4.6.x upgrade</a></li>
+<li class="toc-entry toc-h3"><a href="#44x-to-45x-upgrade">4.4.x to 4.5.x upgrade</a></li>
+</ul>
+</div>
+
+
+
+ </div>
+ </div>
+</div>
+
+
+
+<div id="entry-popover-html" class="popover-template">
+ <p>An entry is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Entries are also known as records.</p>
+
+</div>
+
+<div id="ledger-popover-html" class="popover-template">
+ <p>A ledger is a sequence of entries written to BookKeeper. Entries are written sequentially to ledgers and at most once, giving ledgers append-only semantics.</p>
+
+</div>
+
+<div id="bookie-popover-html" class="popover-template">
+ <p>A bookie is an individual BookKeeper storage server.</p>
+
+<p>Bookies store the content of ledgers and act as a distributed ensemble.</p>
+
+</div>
+
+<div id="rereplication-popover-html" class="popover-template">
+ <p>A subsystem that runs in the background on bookies to ensure that ledgers are fully replicated even if one bookie from the ensemble is down.</p>
+
+</div>
+
+<div id="striping-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="striped-popover-html" class="popover-template">
+ <p>Striping is the process of distributing BookKeeper ledgers to sub-groups of bookies rather than to all bookies in a BookKeeper ensemble.</p>
+
+<p>Striping is essential to ensuring fast performance.</p>
+
+</div>
+
+<div id="journal-popover-html" class="popover-template">
+ <p>A journal file stores BookKeeper transaction logs.</p>
+
+</div>
+
+<div id="fencing-popover-html" class="popover-template">
+ <p>When a reader forces a ledger to close, preventing any further entries from being written to the ledger.</p>
+
+</div>
+
+<div id="record-popover-html" class="popover-template">
+ <p>A record is a sequence of bytes (plus some metadata) written to a BookKeeper ledger. Records are also known as entries.</p>
+
+</div>
+
+
+<script type="text/javascript">
+
+tippy('#entry-popover', {
+ html: '#entry-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#ledger-popover', {
+ html: '#ledger-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#bookie-popover', {
+ html: '#bookie-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#rereplication-popover', {
+ html: '#rereplication-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striping-popover', {
+ html: '#striping-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#striped-popover', {
+ html: '#striped-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#journal-popover', {
+ html: '#journal-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#fencing-popover', {
+ html: '#fencing-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+tippy('#record-popover', {
+ html: '#record-popover-html',
+ arrow: true,
+ animation: 'fade'
+});
+
+</script>
+
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="content has-text-centered">
+ <p>
+ Copyright © 2016 - 2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ <p>
+ Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</footer>
+
+ </body>
+
+ <script src="/js/app.js"></script>
+
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-104419626-1', 'auto');
+ ga('send', 'pageview');
+
+</script>
+
+
+</html>
diff --git a/content/docs/4.10.0/api/distributedlog-api/index.html b/content/docs/4.10.0/api/distributedlog-api/index.html
new file mode 100644
index 0000000..0785c8f
--- /dev/null
+++ b/content/docs/4.10.0/api/distributedlog-api/index.html
@@ -0,0 +1,1111 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Apache BookKeeper™ - DistributedLog</title>
+
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link rel="stylesheet" href="/css/normalize.css">
+<link rel="stylesheet" href="/css/tippy.css">
+<link rel="stylesheet" href="/css/style.css">
+
+<link rel="shortcut icon" href="/img/favicon.ico">
+
+<script src="/js/tippy.min.js"></script>
+
+<script type="text/javascript">
+ var shiftWindow = function() { scrollBy(0, -25); };
+ window.addEventListener("hashchange", shiftWindow);
+ window.addEventListener("pageshow", shiftWindow);
+ function load() { if (window.location.hash) shiftWindow(); }
+</script>
+ </head>
+ <body class="body">
+ <main class="main">
+
+<nav class="navbar bk-topnav">
+ <div class="navbar-brand">
+ <a class="navbar-item bk-brand" href="/">
+ Apache BookKeeper™
+ </a>
+
+ <div class="navbar-burger burger" data-target="bkNav">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+
+ <div id="bkNav" class="navbar-menu">
+ <div class="navbar-start">
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Documentation</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/docs/latest/overview/overview">
+ Version 4.11.0-SNAPSHOT
+ <span class="tag is-warning">Development</span>
+ </a>
+ <a class="navbar-item" href="/docs/latest/api/javadoc">
+ <span class="icon bk-javadoc-icon">
+ <img src="/img/java-icon.svg">
+ </span>
+ Javadoc
+ </a>
+ <hr class="dropdown-divider">
+
+ <a class="navbar-item" href="/docs/4.10.0/overview/overview">
+ Release 4.10.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.2/overview/overview">
+ Release 4.9.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.1/overview/overview">
+ Release 4.9.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.9.0/overview/overview">
+ Release 4.9.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.2/overview/overview">
+ Release 4.8.2
+ <span class="tag is-success">Stable</span>
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.1/overview/overview">
+ Release 4.8.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.8.0/overview/overview">
+ Release 4.8.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.3/overview/overview">
+ Release 4.7.3
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+ Release 4.7.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+ Release 4.7.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+ Release 4.7.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+ Release 4.6.2
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+ Release 4.6.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+ Release 4.6.0
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+ Release 4.5.1
+
+ </a>
+
+ <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+ Release 4.5.0
+
+ </a>
+
+
+ <a class="navbar-item" href="/archives/docs/r4.4.0">
+ Release 4.4.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.2">
+ Release 4.3.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.1">
+ Release 4.3.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.3.0">
+ Release 4.3.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.4">
+ Release 4.2.4
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.3">
+ Release 4.2.3
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.2">
+ Release 4.2.2
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.1">
+ Release 4.2.1
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.2.0">
+ Release 4.2.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.1.0">
+ Release 4.1.0
+
+ </a>
+
+ <a class="navbar-item" href="/archives/docs/r4.0.0">
+ Release 4.0.0
+
+ </a>
+
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Community</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
+ <a class="navbar-item" href="/community/slack">Slack</a>
+ <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
+ <a class="navbar-item" href="/community/releases">Release Management</a>
+ <a class="navbar-item" href="/community/meeting">Community Meetings</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
+ <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
+ <a class="navbar-item" href="/community/testing">Testing Guide</a>
+ <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
+ <a class="navbar-item" href="/community/release_guide">Release Guide</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/community/presentations">Presentations</a>
+ <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
+ </div>
+ </div>
+
+ <div class="navbar-item has-dropdown is-hoverable">
+ <a class="navbar-link">Project</a>
+ <div class="navbar-dropdown is-boxed">
+ <a class="navbar-item" href="/project/who">Who are we?</a>
+ <a class="navbar-item" href="/project/bylaws">Bylaws</a>
+ <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
+ <hr class="dropdown-divider">
+ <a class="navbar-item" href="/project/privacy">Privacy policy</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="navbar-end">
+ <div class="navbar-item">
+ <div class="field is-grouped">
+ <p class="control">
+ <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
+ <span class="icon">
+ <i class="fa fa-twitter"></i>
+ </span>
+ <span>Twitter</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button" href="https://github.com/apache/bookkeeper">
+ <span class="icon">
+ <i class="fa fa-github"></i>
+ </span>
+ <span>GitHub</span>
+ </a>
+ </p>
+ <p class="control">
+ <a class="button is-primary" href="/releases">
+ <span class="icon">
+ <i class="fa fa-download"></i>
+ </span>
+ <span>Download</span>
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>
+
+
+ <div class="bk-docs-container">
+ <div class="columns is-gapless">
+ <div class="column is-2 is-hidden-mobile">
+ <div class="container">
+
+<aside class="sidebar">
+
+ <a class="button is-info">
+ Version: 4.10.0
+ </a>
+ <hr />
+
+ <p>
+ Getting started
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../getting-started/installation">
+ Installation
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/run-locally">
+ Run bookies locally
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../getting-started/concepts">
+ Concepts and architecture
+ </a>
+ </li>
+
+ </ul>
+
+ <p>
+ Deployment
+ </p>
+ <ul class="sidebar-items">
+
+
+ <li>
+ <a href="../../deployment/manual">
+ Manual deployment
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/dcos">
+ BookKeeper on DC/OS
+ </a>
+ </li>
+
+
+ <li>
+ <a href="../../deployment/kubernetes">
+ BookKeeper on Kubernetes
+ </a>
+ </li>
+
+ </ul>
+
... 291079 lines suppressed ...