You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@distributedlog.apache.org by si...@apache.org on 2017/04/26 18:57:14 UTC

[51/51] [partial] incubator-distributedlog git commit: Release 0.4.0-incubating

Release 0.4.0-incubating


Project: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/commit/ef7245e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/tree/ef7245e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/diff/ef7245e8

Branch: refs/heads/asf-site
Commit: ef7245e873be0aeea609b3446435cf91fe5072d7
Parents: 1e6843e
Author: Sijie Guo <si...@apache.org>
Authored: Wed Apr 26 11:55:37 2017 -0700
Committer: Sijie Guo <si...@apache.org>
Committed: Wed Apr 26 11:55:37 2017 -0700

----------------------------------------------------------------------
 content/blog/index.html                         |    32 +-
 content/coming-soon.html                        |    11 +-
 content/community/index.html                    |    20 +-
 content/community/team/index.html               |    11 +-
 content/contribute/index.html                   |    11 +-
 .../admin_guide/bookkeeper.html                 |   709 ++
 .../0.4.0-incubating/admin_guide/hardware.html  |   644 ++
 .../0.4.0-incubating/admin_guide/loadtest.html  |   609 +
 .../docs/0.4.0-incubating/admin_guide/main.html |   477 +
 .../admin_guide/monitoring.html                 |   866 ++
 .../admin_guide/operations.html                 |   714 ++
 .../admin_guide/performance.html                |   543 +
 .../0.4.0-incubating/admin_guide/vagrant.rst    |    18 +
 .../0.4.0-incubating/admin_guide/zookeeper.html |   595 +
 .../0.4.0-incubating/basics/introduction.html   |   724 ++
 content/docs/0.4.0-incubating/css/main.css      |   457 +
 content/docs/0.4.0-incubating/css/theme.css     |    21 +
 .../0.4.0-incubating/deployment/cluster.html    |  1000 ++
 .../0.4.0-incubating/deployment/docker.html     |   426 +
 .../deployment/global-cluster.html              |   622 +
 .../bootstrap/glyphicons-halflings-regular.eot  |   Bin 0 -> 20127 bytes
 .../bootstrap/glyphicons-halflings-regular.svg  |   288 +
 .../bootstrap/glyphicons-halflings-regular.ttf  |   Bin 0 -> 45404 bytes
 .../bootstrap/glyphicons-halflings-regular.woff |   Bin 0 -> 23424 bytes
 .../glyphicons-halflings-regular.woff2          |   Bin 0 -> 18028 bytes
 .../docs/0.4.0-incubating/images/costmodel.png  |   Bin 0 -> 35381 bytes
 .../docs/0.4.0-incubating/images/datamodel.png  |   Bin 0 -> 51935 bytes
 .../images/distributedlog_logo_l.png            |   Bin 0 -> 20791 bytes
 .../images/distributedlog_logo_navbar.png       |   Bin 0 -> 9195 bytes
 .../images/distributedlog_logo_s.png            |   Bin 0 -> 2006 bytes
 .../0.4.0-incubating/images/distribution.png    |   Bin 0 -> 16923 bytes
 .../docs/0.4.0-incubating/images/favicon.ico    |   Bin 0 -> 1660 bytes
 .../docs/0.4.0-incubating/images/fencing.png    |   Bin 0 -> 53642 bytes
 .../images/globalreplicatedlog.png              |   Bin 0 -> 111734 bytes
 .../0.4.0-incubating/images/lacprotocol.png     |   Bin 0 -> 48746 bytes
 .../0.4.0-incubating/images/logsegments.png     |   Bin 0 -> 14238 bytes
 content/docs/0.4.0-incubating/images/pubsub.png |   Bin 0 -> 443154 bytes
 .../0.4.0-incubating/images/readrequests.png    |   Bin 0 -> 29553 bytes
 .../0.4.0-incubating/images/requestflow.png     |   Bin 0 -> 72989 bytes
 .../0.4.0-incubating/images/requestrouting.png  |   Bin 0 -> 40990 bytes
 .../0.4.0-incubating/images/softwarestack.png   |   Bin 0 -> 76557 bytes
 content/docs/0.4.0-incubating/index.html        |   435 +
 .../0.4.0-incubating/js/bootstrap-sprockets.js  |    12 +
 content/docs/0.4.0-incubating/js/bootstrap.js   |  2363 ++++
 .../docs/0.4.0-incubating/js/bootstrap.min.js   |     7 +
 .../docs/0.4.0-incubating/js/bootstrap/affix.js |   162 +
 .../docs/0.4.0-incubating/js/bootstrap/alert.js |    94 +
 .../0.4.0-incubating/js/bootstrap/button.js     |   120 +
 .../0.4.0-incubating/js/bootstrap/carousel.js   |   237 +
 .../0.4.0-incubating/js/bootstrap/collapse.js   |   211 +
 .../0.4.0-incubating/js/bootstrap/dropdown.js   |   165 +
 .../docs/0.4.0-incubating/js/bootstrap/modal.js |   337 +
 .../0.4.0-incubating/js/bootstrap/popover.js    |   108 +
 .../0.4.0-incubating/js/bootstrap/scrollspy.js  |   172 +
 .../docs/0.4.0-incubating/js/bootstrap/tab.js   |   155 +
 .../0.4.0-incubating/js/bootstrap/tooltip.js    |   514 +
 .../0.4.0-incubating/js/bootstrap/transition.js |    59 +
 .../docs/0.4.0-incubating/performance/main.html |   379 +
 .../docs/0.4.0-incubating/start/building.html   |   442 +
 .../docs/0.4.0-incubating/start/download.html   |   470 +
 .../docs/0.4.0-incubating/start/quickstart.html |   478 +
 content/docs/0.4.0-incubating/styles/site.css   |  5811 ++++++++++
 .../tutorials/analytics-mapreduce.html          |   569 +
 .../0.4.0-incubating/tutorials/basic-1.html     |   612 +
 .../0.4.0-incubating/tutorials/basic-2.html     |   580 +
 .../0.4.0-incubating/tutorials/basic-3.html     |   644 ++
 .../0.4.0-incubating/tutorials/basic-4.html     |   601 +
 .../0.4.0-incubating/tutorials/basic-5.html     |   578 +
 .../0.4.0-incubating/tutorials/basic-6.html     |   691 ++
 .../docs/0.4.0-incubating/tutorials/main.html   |   450 +
 .../0.4.0-incubating/tutorials/messaging-1.html |   545 +
 .../0.4.0-incubating/tutorials/messaging-2.html |   583 +
 .../0.4.0-incubating/tutorials/messaging-3.html |   474 +
 .../0.4.0-incubating/tutorials/messaging-4.html |   395 +
 .../0.4.0-incubating/tutorials/messaging-5.html |   389 +
 .../tutorials/replicatedstatemachines.html      |   379 +
 .../0.4.0-incubating/user_guide/api/core.html   |  1053 ++
 .../0.4.0-incubating/user_guide/api/main.html   |   614 +
 .../user_guide/api/practice.html                |   685 ++
 .../0.4.0-incubating/user_guide/api/proxy.html  |   681 ++
 .../user_guide/architecture/main.html           |   767 ++
 .../user_guide/configuration/client.html        |   713 ++
 .../user_guide/configuration/core.html          |  1076 ++
 .../user_guide/configuration/main.html          |   619 +
 .../user_guide/configuration/perlog.html        |   747 ++
 .../user_guide/configuration/proxy.html         |   685 ++
 .../user_guide/considerations/main.html         |   658 ++
 .../user_guide/design/main.html                 |   808 ++
 .../user_guide/globalreplicatedlog/main.html    |   696 ++
 .../user_guide/implementation/core.html         |   378 +
 .../user_guide/implementation/main.html         |   607 +
 .../user_guide/implementation/storage.html      |   909 ++
 .../user_guide/implementation/writeproxy.html   |   378 +
 .../docs/0.4.0-incubating/user_guide/main.html  |   547 +
 .../user_guide/references/features.html         |   645 ++
 .../user_guide/references/main.html             |   610 +
 .../user_guide/references/metrics.html          |   969 ++
 content/docs/latest/admin_guide/bookkeeper.html |     9 +-
 content/docs/latest/admin_guide/hardware.html   |     9 +-
 content/docs/latest/admin_guide/loadtest.html   |    17 +-
 content/docs/latest/admin_guide/main.html       |     9 +-
 content/docs/latest/admin_guide/monitoring.html |     9 +-
 content/docs/latest/admin_guide/operations.html |    15 +-
 .../docs/latest/admin_guide/performance.html    |     9 +-
 content/docs/latest/admin_guide/zookeeper.html  |     9 +-
 .../docs/latest/api/java/allclasses-frame.html  |   229 +
 .../latest/api/java/allclasses-noframe.html     |   229 +
 .../subscription/package-frame.html             |    15 +
 .../subscription/package-summary.html           |   135 +
 .../subscription/package-tree.html              |   129 +
 .../subscription/package-use.html               |   126 +
 .../docs/latest/api/java/constant-values.html   |  2322 ++++
 .../docs/latest/api/java/deprecated-list.html   |   199 +
 content/docs/latest/api/java/help-doc.html      |   231 +
 content/docs/latest/api/java/index-all.html     |  5743 +++++++++
 content/docs/latest/api/java/index.html         |    76 +
 .../distributedlog/AppendOnlyStreamReader.html  |   323 +
 .../distributedlog/AppendOnlyStreamWriter.html  |   351 +
 .../apache/distributedlog/AsyncLogReader.html   |   333 +
 .../apache/distributedlog/AsyncLogWriter.html   |   358 +
 .../distributedlog/AsyncNotification.html       |   246 +
 .../BKDistributedLogNamespace.html              |   668 ++
 .../apache/distributedlog/BookKeeperClient.html |   313 +
 .../distributedlog/BookKeeperClientBuilder.html |   480 +
 .../java/org/apache/distributedlog/DLSN.html    |   683 ++
 .../DistributedLogConfiguration.html            | 10283 +++++++++++++++++
 .../distributedlog/DistributedLogConstants.html |   744 ++
 .../distributedlog/DistributedLogManager.html   |  1014 ++
 .../apache/distributedlog/Entry.Builder.html    |   470 +
 .../org/apache/distributedlog/Entry.Reader.html |   328 +
 .../org/apache/distributedlog/Entry.Writer.html |   373 +
 .../java/org/apache/distributedlog/Entry.html   |   350 +
 .../LocalDLMEmulator.Builder.html               |   373 +
 .../apache/distributedlog/LocalDLMEmulator.html |   571 +
 .../org/apache/distributedlog/LogReader.html    |   447 +
 .../apache/distributedlog/LogRecord.Reader.html |   360 +
 .../apache/distributedlog/LogRecord.Writer.html |   301 +
 .../org/apache/distributedlog/LogRecord.html    |   708 ++
 .../distributedlog/LogRecordSet.Reader.html     |   238 +
 .../distributedlog/LogRecordSet.Writer.html     |   256 +
 .../org/apache/distributedlog/LogRecordSet.html |   420 +
 .../distributedlog/LogRecordSetBuffer.html      |   322 +
 .../distributedlog/LogRecordWithDLSN.html       |   396 +
 ...gmentMetadata.LogSegmentMetadataBuilder.html |   569 +
 ...gmentMetadata.LogSegmentMetadataVersion.html |   444 +
 .../LogSegmentMetadata.Mutator.html             |   350 +
 .../LogSegmentMetadata.TruncationStatus.html    |   359 +
 .../distributedlog/LogSegmentMetadata.html      |   902 ++
 .../org/apache/distributedlog/LogWriter.html    |   353 +
 .../apache/distributedlog/MetadataAccessor.html |   336 +
 .../org/apache/distributedlog/ReadUtils.html    |   402 +
 .../ZooKeeperClient.Credentials.html            |   267 +
 .../ZooKeeperClient.DigestCredentials.html      |   303 +
 ...eperClient.ZooKeeperConnectionException.html |   288 +
 ...erClient.ZooKeeperSessionExpireNotifier.html |   227 +
 .../apache/distributedlog/ZooKeeperClient.html  |   430 +
 .../distributedlog/ZooKeeperClientBuilder.html  |   485 +
 .../DistributedLogAnnotations.Compression.html  |   167 +
 .../DistributedLogAnnotations.FlakyTest.html    |   167 +
 .../annotations/DistributedLogAnnotations.html  |   267 +
 .../DistributedLogAnnotations.Compression.html  |   126 +
 .../DistributedLogAnnotations.FlakyTest.html    |   126 +
 .../class-use/DistributedLogAnnotations.html    |   126 +
 .../annotations/package-frame.html              |    26 +
 .../annotations/package-summary.html            |   178 +
 .../annotations/package-tree.html               |   144 +
 .../distributedlog/annotations/package-use.html |   126 +
 .../callback/LogSegmentListener.html            |   248 +
 .../callback/LogSegmentNamesListener.html       |   249 +
 .../callback/NamespaceListener.html             |   235 +
 .../callback/ReadAheadCallback.html             |   224 +
 .../callback/class-use/LogSegmentListener.html  |   176 +
 .../class-use/LogSegmentNamesListener.html      |   179 +
 .../callback/class-use/NamespaceListener.html   |   271 +
 .../callback/class-use/ReadAheadCallback.html   |   126 +
 .../distributedlog/callback/package-frame.html  |    24 +
 .../callback/package-summary.html               |   172 +
 .../distributedlog/callback/package-tree.html   |   138 +
 .../distributedlog/callback/package-use.html    |   253 +
 .../class-use/AppendOnlyStreamReader.html       |   170 +
 .../class-use/AppendOnlyStreamWriter.html       |   170 +
 .../class-use/AsyncLogReader.html               |   210 +
 .../class-use/AsyncLogWriter.html               |   185 +
 .../class-use/AsyncNotification.html            |   126 +
 .../class-use/BKDistributedLogNamespace.html    |   126 +
 .../class-use/BookKeeperClient.html             |   183 +
 .../class-use/BookKeeperClientBuilder.html      |   228 +
 .../apache/distributedlog/class-use/DLSN.html   |   674 ++
 .../class-use/DistributedLogConfiguration.html  |  1145 ++
 .../class-use/DistributedLogConstants.html      |   126 +
 .../class-use/DistributedLogManager.html        |   219 +
 .../distributedlog/class-use/Entry.Builder.html |   226 +
 .../distributedlog/class-use/Entry.Reader.html  |   207 +
 .../distributedlog/class-use/Entry.Writer.html  |   174 +
 .../apache/distributedlog/class-use/Entry.html  |   168 +
 .../class-use/LocalDLMEmulator.Builder.html     |   196 +
 .../class-use/LocalDLMEmulator.html             |   168 +
 .../distributedlog/class-use/LogReader.html     |   174 +
 .../class-use/LogRecord.Reader.html             |   126 +
 .../class-use/LogRecord.Writer.html             |   126 +
 .../distributedlog/class-use/LogRecord.html     |   273 +
 .../class-use/LogRecordSet.Reader.html          |   168 +
 .../class-use/LogRecordSet.Writer.html          |   169 +
 .../distributedlog/class-use/LogRecordSet.html  |   126 +
 .../class-use/LogRecordSetBuffer.html           |   222 +
 .../class-use/LogRecordWithDLSN.html            |   320 +
 ...gmentMetadata.LogSegmentMetadataBuilder.html |   203 +
 ...gmentMetadata.LogSegmentMetadataVersion.html |   235 +
 .../class-use/LogSegmentMetadata.Mutator.html   |   196 +
 .../LogSegmentMetadata.TruncationStatus.html    |   190 +
 .../class-use/LogSegmentMetadata.html           |   714 ++
 .../distributedlog/class-use/LogWriter.html     |   170 +
 .../class-use/MetadataAccessor.html             |   170 +
 .../distributedlog/class-use/ReadUtils.html     |   126 +
 .../class-use/ZooKeeperClient.Credentials.html  |   181 +
 .../ZooKeeperClient.DigestCredentials.html      |   126 +
 ...eperClient.ZooKeeperConnectionException.html |   171 +
 ...erClient.ZooKeeperSessionExpireNotifier.html |   171 +
 .../class-use/ZooKeeperClient.html              |   234 +
 .../class-use/ZooKeeperClientBuilder.html       |   232 +
 .../distributedlog/client/ClientConfig.html     |   638 +
 .../client/DistributedLogClientImpl.html        |   736 ++
 ...DistributedLogMultiStreamWriter.Builder.html |   544 +
 .../client/DistributedLogMultiStreamWriter.html |   316 +
 .../client/class-use/ClientConfig.html          |   325 +
 .../class-use/DistributedLogClientImpl.html     |   126 +
 ...DistributedLogMultiStreamWriter.Builder.html |   242 +
 .../DistributedLogMultiStreamWriter.html        |   170 +
 .../client/monitor/MonitorServiceClient.html    |   317 +
 .../monitor/class-use/MonitorServiceClient.html |   209 +
 .../client/monitor/package-frame.html           |    21 +
 .../client/monitor/package-summary.html         |   155 +
 .../client/monitor/package-tree.html            |   135 +
 .../client/monitor/package-use.html             |   186 +
 .../client/ownership/OwnershipCache.html        |   458 +
 .../ownership/class-use/OwnershipCache.html     |   126 +
 .../client/ownership/package-frame.html         |    21 +
 .../client/ownership/package-summary.html       |   155 +
 .../client/ownership/package-tree.html          |   139 +
 .../client/ownership/package-use.html           |   126 +
 .../distributedlog/client/package-frame.html    |    24 +
 .../distributedlog/client/package-summary.html  |   173 +
 .../distributedlog/client/package-tree.html     |   142 +
 .../distributedlog/client/package-use.html      |   219 +
 .../client/proxy/ClusterClient.html             |   302 +
 .../client/proxy/HostProvider.html              |   235 +
 .../client/proxy/ProxyClient.Builder.html       |   241 +
 .../proxy/ProxyClient.DefaultBuilder.html       |   261 +
 .../client/proxy/ProxyClient.html               |   367 +
 .../client/proxy/ProxyClientManager.html        |   472 +
 .../client/proxy/ProxyListener.html             |   267 +
 .../client/proxy/class-use/ClusterClient.html   |   175 +
 .../client/proxy/class-use/HostProvider.html    |   196 +
 .../proxy/class-use/ProxyClient.Builder.html    |   202 +
 .../class-use/ProxyClient.DefaultBuilder.html   |   126 +
 .../client/proxy/class-use/ProxyClient.html     |   265 +
 .../proxy/class-use/ProxyClientManager.html     |   126 +
 .../client/proxy/class-use/ProxyListener.html   |   196 +
 .../client/proxy/package-frame.html             |    30 +
 .../client/proxy/package-summary.html           |   202 +
 .../client/proxy/package-tree.html              |   148 +
 .../client/proxy/package-use.html               |   216 +
 .../client/resolver/DefaultRegionResolver.html  |   326 +
 .../client/resolver/RegionResolver.html         |   257 +
 .../class-use/DefaultRegionResolver.html        |   126 +
 .../resolver/class-use/RegionResolver.html      |   278 +
 .../client/resolver/package-frame.html          |    25 +
 .../client/resolver/package-summary.html        |   172 +
 .../client/resolver/package-tree.html           |   143 +
 .../client/resolver/package-use.html            |   232 +
 .../ConsistentHashRoutingService.Builder.html   |   336 +
 .../routing/ConsistentHashRoutingService.html   |   694 ++
 .../routing/RegionsRoutingService.Builder.html  |   310 +
 .../client/routing/RegionsRoutingService.html   |   532 +
 .../client/routing/RoutingService.Builder.html  |   261 +
 .../routing/RoutingService.RoutingContext.html  |   350 +
 .../routing/RoutingService.RoutingListener.html |   259 +
 .../client/routing/RoutingService.html          |   395 +
 .../client/routing/RoutingUtils.html            |   349 +
 .../ServerSetWatcher.MonitorException.html      |   283 +
 .../ServerSetWatcher.ServerSetMonitor.html      |   238 +
 .../client/routing/ServerSetWatcher.html        |   269 +
 .../SingleHostRoutingService.Builder.html       |   297 +
 .../routing/SingleHostRoutingService.html       |   478 +
 .../distributedlog/client/routing/TestName.html |   307 +
 .../client/routing/TwitterServerSetWatcher.html |   321 +
 .../ConsistentHashRoutingService.Builder.html   |   190 +
 .../class-use/ConsistentHashRoutingService.html |   171 +
 .../RegionsRoutingService.Builder.html          |   178 +
 .../class-use/RegionsRoutingService.html        |   175 +
 .../class-use/RoutingService.Builder.html       |   242 +
 .../RoutingService.RoutingContext.html          |   206 +
 .../RoutingService.RoutingListener.html         |   218 +
 .../routing/class-use/RoutingService.html       |   342 +
 .../client/routing/class-use/RoutingUtils.html  |   126 +
 .../ServerSetWatcher.MonitorException.html      |   176 +
 .../ServerSetWatcher.ServerSetMonitor.html      |   176 +
 .../routing/class-use/ServerSetWatcher.html     |   186 +
 .../SingleHostRoutingService.Builder.html       |   174 +
 .../class-use/SingleHostRoutingService.html     |   168 +
 .../client/routing/class-use/TestName.html      |   126 +
 .../class-use/TwitterServerSetWatcher.html      |   126 +
 .../client/routing/package-frame.html           |    42 +
 .../client/routing/package-summary.html         |   267 +
 .../client/routing/package-tree.html            |   169 +
 .../client/routing/package-use.html             |   274 +
 .../client/serverset/DLZkServerSet.html         |   317 +
 .../serverset/class-use/DLZkServerSet.html      |   193 +
 .../client/serverset/package-frame.html         |    21 +
 .../client/serverset/package-summary.html       |   155 +
 .../client/serverset/package-tree.html          |   139 +
 .../client/serverset/package-use.html           |   186 +
 ...efaultSpeculativeRequestExecutionPolicy.html |   295 +
 .../SpeculativeRequestExecutionPolicy.html      |   238 +
 .../speculative/SpeculativeRequestExecutor.html |   231 +
 ...efaultSpeculativeRequestExecutionPolicy.html |   126 +
 .../SpeculativeRequestExecutionPolicy.html      |   170 +
 .../class-use/SpeculativeRequestExecutor.html   |   178 +
 .../client/speculative/package-frame.html       |    26 +
 .../client/speculative/package-summary.html     |   178 +
 .../client/speculative/package-tree.html        |   144 +
 .../client/speculative/package-use.html         |   168 +
 .../client/stats/ClientStats.html               |   325 +
 .../client/stats/ClientStatsLogger.html         |   304 +
 .../distributedlog/client/stats/OpStats.html    |   299 +
 .../client/stats/OpStatsLogger.html             |   291 +
 .../OwnershipStatsLogger.OwnershipStat.html     |   296 +
 .../client/stats/OwnershipStatsLogger.html      |   349 +
 .../client/stats/class-use/ClientStats.html     |   187 +
 .../stats/class-use/ClientStatsLogger.html      |   126 +
 .../client/stats/class-use/OpStats.html         |   168 +
 .../client/stats/class-use/OpStatsLogger.html   |   126 +
 .../OwnershipStatsLogger.OwnershipStat.html     |   126 +
 .../stats/class-use/OwnershipStatsLogger.html   |   168 +
 .../client/stats/package-frame.html             |    26 +
 .../client/stats/package-summary.html           |   185 +
 .../client/stats/package-tree.html              |   144 +
 .../client/stats/package-use.html               |   209 +
 .../exceptions/AlreadyClosedException.html      |   299 +
 .../AlreadyTruncatedTransactionException.html   |   297 +
 .../exceptions/BKTransmitException.html         |   335 +
 .../exceptions/ChecksumFailedException.html     |   297 +
 .../exceptions/DLClientClosedException.html     |   311 +
 .../distributedlog/exceptions/DLException.html  |   413 +
 .../exceptions/DLIllegalStateException.html     |   311 +
 .../exceptions/DLInterruptedException.html      |   311 +
 .../exceptions/EndOfLogSegmentException.html    |   297 +
 .../exceptions/EndOfStreamException.html        |   297 +
 .../exceptions/FlushException.html              |   366 +
 .../exceptions/IdleReaderException.html         |   272 +
 .../exceptions/InternalServerException.html     |   323 +
 .../InvalidEnvelopedEntryException.html         |   297 +
 .../exceptions/InvalidStreamNameException.html  |   311 +
 .../exceptions/LockCancelledException.html      |   306 +
 .../exceptions/LockingException.html            |   358 +
 .../exceptions/LogEmptyException.html           |   297 +
 .../exceptions/LogExistsException.html          |   297 +
 .../exceptions/LogNotFoundException.html        |   297 +
 .../exceptions/LogReadException.html            |   298 +
 .../exceptions/LogRecordTooLongException.html   |   299 +
 .../LogSegmentIsTruncatedException.html         |   297 +
 .../exceptions/LogSegmentNotFoundException.html |   297 +
 .../exceptions/MetadataException.html           |   311 +
 .../exceptions/NotYetImplementedException.html  |   297 +
 .../exceptions/OverCapacityException.html       |   318 +
 .../OwnershipAcquireFailedException.html        |   340 +
 .../exceptions/ReadCancelledException.html      |   299 +
 .../exceptions/RegionUnavailableException.html  |   299 +
 .../exceptions/RequestDeniedException.html      |   299 +
 .../exceptions/RetryableReadException.html      |   315 +
 .../exceptions/ServiceUnavailableException.html |   297 +
 .../exceptions/StreamNotReadyException.html     |   297 +
 .../exceptions/StreamUnavailableException.html  |   297 +
 .../exceptions/TooManyStreamsException.html     |   302 +
 .../TransactionIdOutOfOrderException.html       |   377 +
 .../exceptions/UnexpectedException.html         |   323 +
 .../UnsupportedMetadataVersionException.html    |   297 +
 .../exceptions/WriteCancelledException.html     |   325 +
 .../exceptions/WriteException.html              |   299 +
 .../distributedlog/exceptions/ZKException.html  |   345 +
 .../class-use/AlreadyClosedException.html       |   168 +
 .../AlreadyTruncatedTransactionException.html   |   126 +
 .../class-use/BKTransmitException.html          |   126 +
 .../class-use/ChecksumFailedException.html      |   126 +
 .../class-use/DLClientClosedException.html      |   126 +
 .../exceptions/class-use/DLException.html       |   469 +
 .../class-use/DLIllegalStateException.html      |   126 +
 .../class-use/DLInterruptedException.html       |   126 +
 .../class-use/EndOfLogSegmentException.html     |   126 +
 .../class-use/EndOfStreamException.html         |   126 +
 .../exceptions/class-use/FlushException.html    |   126 +
 .../class-use/IdleReaderException.html          |   126 +
 .../class-use/InternalServerException.html      |   126 +
 .../InvalidEnvelopedEntryException.html         |   126 +
 .../class-use/InvalidStreamNameException.html   |   245 +
 .../class-use/LockCancelledException.html       |   126 +
 .../exceptions/class-use/LockingException.html  |   275 +
 .../exceptions/class-use/LogEmptyException.html |   126 +
 .../class-use/LogExistsException.html           |   126 +
 .../class-use/LogNotFoundException.html         |   194 +
 .../exceptions/class-use/LogReadException.html  |   126 +
 .../class-use/LogRecordTooLongException.html    |   178 +
 .../LogSegmentIsTruncatedException.html         |   126 +
 .../class-use/LogSegmentNotFoundException.html  |   126 +
 .../exceptions/class-use/MetadataException.html |   126 +
 .../class-use/NotYetImplementedException.html   |   126 +
 .../class-use/OverCapacityException.html        |   170 +
 .../OwnershipAcquireFailedException.html        |   171 +
 .../class-use/ReadCancelledException.html       |   126 +
 .../class-use/RegionUnavailableException.html   |   126 +
 .../class-use/RequestDeniedException.html       |   126 +
 .../class-use/RetryableReadException.html       |   126 +
 .../class-use/ServiceUnavailableException.html  |   126 +
 .../class-use/StreamNotReadyException.html      |   126 +
 .../class-use/StreamUnavailableException.html   |   126 +
 .../class-use/TooManyStreamsException.html      |   126 +
 .../TransactionIdOutOfOrderException.html       |   126 +
 .../class-use/UnexpectedException.html          |   170 +
 .../UnsupportedMetadataVersionException.html    |   126 +
 .../class-use/WriteCancelledException.html      |   126 +
 .../exceptions/class-use/WriteException.html    |   178 +
 .../exceptions/class-use/ZKException.html       |   168 +
 .../exceptions/package-frame.html               |    62 +
 .../exceptions/package-summary.html             |   402 +
 .../distributedlog/exceptions/package-tree.html |   201 +
 .../distributedlog/exceptions/package-use.html  |   305 +
 .../feature/AbstractFeatureProvider.html        |   415 +
 .../distributedlog/feature/CoreFeatureKeys.html |   356 +
 .../feature/DefaultFeatureProvider.html         |   349 +
 .../DynamicConfigurationFeatureProvider.html    |   418 +
 .../class-use/AbstractFeatureProvider.html      |   176 +
 .../feature/class-use/CoreFeatureKeys.html      |   177 +
 .../class-use/DefaultFeatureProvider.html       |   126 +
 .../DynamicConfigurationFeatureProvider.html    |   126 +
 .../distributedlog/feature/package-frame.html   |    27 +
 .../distributedlog/feature/package-summary.html |   184 +
 .../distributedlog/feature/package-tree.html    |   160 +
 .../distributedlog/feature/package-use.html     |   168 +
 .../org/apache/distributedlog/io/Abortable.html |   247 +
 .../apache/distributedlog/io/Abortables.html    |   402 +
 .../distributedlog/io/AsyncAbortable.html       |   296 +
 .../distributedlog/io/AsyncCloseable.html       |   306 +
 .../distributedlog/io/AsyncDeleteable.html      |   233 +
 .../org/apache/distributedlog/io/Buffer.html    |   317 +
 .../io/CompressionCodec.Type.html               |   360 +
 .../distributedlog/io/CompressionCodec.html     |   333 +
 .../distributedlog/io/CompressionUtils.html     |   362 +
 .../io/IdentityCompressionCodec.html            |   387 +
 .../distributedlog/io/LZ4CompressionCodec.html  |   389 +
 .../distributedlog/io/TransmitListener.html     |   285 +
 .../distributedlog/io/class-use/Abortable.html  |   202 +
 .../distributedlog/io/class-use/Abortables.html |   126 +
 .../io/class-use/AsyncAbortable.html            |   266 +
 .../io/class-use/AsyncCloseable.html            |   317 +
 .../io/class-use/AsyncDeleteable.html           |   126 +
 .../distributedlog/io/class-use/Buffer.html     |   126 +
 .../io/class-use/CompressionCodec.Type.html     |   259 +
 .../io/class-use/CompressionCodec.html          |   191 +
 .../io/class-use/CompressionUtils.html          |   126 +
 .../io/class-use/IdentityCompressionCodec.html  |   126 +
 .../io/class-use/LZ4CompressionCodec.html       |   126 +
 .../io/class-use/TransmitListener.html          |   176 +
 .../apache/distributedlog/io/package-frame.html |    38 +
 .../distributedlog/io/package-summary.html      |   243 +
 .../apache/distributedlog/io/package-tree.html  |   172 +
 .../apache/distributedlog/io/package-use.html   |   300 +
 .../distributedlog/lock/DistributedLock.html    |   310 +
 .../lock/EpochChangedException.html             |   307 +
 .../lock/LockClosedException.html               |   320 +
 .../lock/LockSessionExpiredException.html       |   306 +
 .../lock/LockStateChangedException.html         |   262 +
 .../lock/LockTimeoutException.html              |   262 +
 .../apache/distributedlog/lock/LockWaiter.html  |   348 +
 .../distributedlog/lock/NopDistributedLock.html |   378 +
 .../apache/distributedlog/lock/SessionLock.html |   400 +
 .../distributedlog/lock/SessionLockFactory.html |   240 +
 .../distributedlog/lock/ZKDistributedLock.html  |   429 +
 .../lock/ZKSessionLockFactory.html              |   306 +
 .../lock/class-use/DistributedLock.html         |   250 +
 .../lock/class-use/EpochChangedException.html   |   126 +
 .../lock/class-use/LockClosedException.html     |   126 +
 .../class-use/LockSessionExpiredException.html  |   126 +
 .../class-use/LockStateChangedException.html    |   126 +
 .../lock/class-use/LockTimeoutException.html    |   126 +
 .../lock/class-use/LockWaiter.html              |   171 +
 .../lock/class-use/NopDistributedLock.html      |   126 +
 .../lock/class-use/SessionLock.html             |   191 +
 .../lock/class-use/SessionLockFactory.html      |   185 +
 .../lock/class-use/ZKDistributedLock.html       |   170 +
 .../lock/class-use/ZKSessionLockFactory.html    |   126 +
 .../distributedlog/lock/package-frame.html      |    38 +
 .../distributedlog/lock/package-summary.html    |   244 +
 .../distributedlog/lock/package-tree.html       |   177 +
 .../apache/distributedlog/lock/package-use.html |   206 +
 ...gSegmentEntryReader.StateChangeListener.html |   230 +
 .../logsegment/LogSegmentEntryReader.html       |   447 +
 .../logsegment/LogSegmentEntryStore.html        |   311 +
 .../logsegment/LogSegmentEntryWriter.html       |   308 +
 .../logsegment/LogSegmentFilter.html            |   269 +
 .../logsegment/LogSegmentMetadataCache.html     |   350 +
 .../logsegment/LogSegmentMetadataStore.html     |   458 +
 .../LogSegmentRandomAccessEntryReader.html      |   284 +
 .../logsegment/LogSegmentWriter.html            |   374 +
 .../logsegment/PerStreamLogSegmentCache.html    |   486 +
 .../logsegment/RollingPolicy.html               |   239 +
 .../logsegment/SizeBasedRollingPolicy.html      |   293 +
 .../logsegment/TimeBasedRollingPolicy.html      |   293 +
 ...gSegmentEntryReader.StateChangeListener.html |   176 +
 .../class-use/LogSegmentEntryReader.html        |   192 +
 .../class-use/LogSegmentEntryStore.html         |   229 +
 .../class-use/LogSegmentEntryWriter.html        |   171 +
 .../logsegment/class-use/LogSegmentFilter.html  |   168 +
 .../class-use/LogSegmentMetadataCache.html      |   126 +
 .../class-use/LogSegmentMetadataStore.html      |   213 +
 .../LogSegmentRandomAccessEntryReader.html      |   171 +
 .../logsegment/class-use/LogSegmentWriter.html  |   126 +
 .../class-use/PerStreamLogSegmentCache.html     |   126 +
 .../logsegment/class-use/RollingPolicy.html     |   172 +
 .../class-use/SizeBasedRollingPolicy.html       |   126 +
 .../class-use/TimeBasedRollingPolicy.html       |   126 +
 .../logsegment/package-frame.html               |    36 +
 .../logsegment/package-summary.html             |   233 +
 .../distributedlog/logsegment/package-tree.html |   175 +
 .../distributedlog/logsegment/package-use.html  |   256 +
 .../distributedlog/metadata/DLConfig.html       |   250 +
 .../distributedlog/metadata/DLMetadata.html     |   463 +
 .../DryrunLogSegmentMetadataStoreUpdater.html   |   318 +
 .../distributedlog/metadata/LogMetadata.html    |   773 ++
 .../metadata/LogMetadataForReader.html          |   363 +
 .../metadata/LogMetadataForWriter.html          |   346 +
 .../metadata/LogMetadataStore.html              |   296 +
 .../LogSegmentMetadataStoreUpdater.html         |   597 +
 .../metadata/LogStreamMetadataStore.html        |   416 +
 .../metadata/MetadataResolver.html              |   250 +
 .../metadata/MetadataUpdater.html               |   409 +
 .../metadata/class-use/DLConfig.html            |   180 +
 .../metadata/class-use/DLMetadata.html          |   181 +
 .../DryrunLogSegmentMetadataStoreUpdater.html   |   126 +
 .../metadata/class-use/LogMetadata.html         |   205 +
 .../class-use/LogMetadataForReader.html         |   188 +
 .../class-use/LogMetadataForWriter.html         |   224 +
 .../metadata/class-use/LogMetadataStore.html    |   170 +
 .../LogSegmentMetadataStoreUpdater.html         |   168 +
 .../class-use/LogStreamMetadataStore.html       |   170 +
 .../metadata/class-use/MetadataResolver.html    |   126 +
 .../metadata/class-use/MetadataUpdater.html     |   186 +
 .../distributedlog/metadata/package-frame.html  |    34 +
 .../metadata/package-summary.html               |   222 +
 .../distributedlog/metadata/package-tree.html   |   166 +
 .../distributedlog/metadata/package-use.html    |   247 +
 .../namespace/DistributedLogNamespace.html      |   498 +
 .../DistributedLogNamespaceBuilder.html         |   453 +
 .../namespace/NamespaceDriver.Role.html         |   347 +
 .../namespace/NamespaceDriver.html              |   469 +
 .../namespace/NamespaceDriverManager.html       |   299 +
 .../namespace/NamespaceWatcher.html             |   355 +
 .../class-use/DistributedLogNamespace.html      |   220 +
 .../DistributedLogNamespaceBuilder.html         |   216 +
 .../class-use/NamespaceDriver.Role.html         |   198 +
 .../namespace/class-use/NamespaceDriver.html    |   264 +
 .../class-use/NamespaceDriverManager.html       |   126 +
 .../namespace/class-use/NamespaceWatcher.html   |   126 +
 .../distributedlog/namespace/package-frame.html |    32 +
 .../namespace/package-summary.html              |   205 +
 .../distributedlog/namespace/package-tree.html  |   166 +
 .../distributedlog/namespace/package-use.html   |   227 +
 .../apache/distributedlog/net/DNSResolver.html  |   401 +
 .../distributedlog/net/DNSResolverForRacks.html |   344 +
 .../distributedlog/net/DNSResolverForRows.html  |   344 +
 .../org/apache/distributedlog/net/NetUtils.html |   292 +
 .../net/class-use/DNSResolver.html              |   176 +
 .../net/class-use/DNSResolverForRacks.html      |   126 +
 .../net/class-use/DNSResolverForRows.html       |   126 +
 .../distributedlog/net/class-use/NetUtils.html  |   126 +
 .../distributedlog/net/package-frame.html       |    24 +
 .../distributedlog/net/package-summary.html     |   185 +
 .../apache/distributedlog/net/package-tree.html |   145 +
 .../apache/distributedlog/net/package-use.html  |   163 +
 .../apache/distributedlog/package-frame.html    |    70 +
 .../apache/distributedlog/package-summary.html  |   403 +
 .../org/apache/distributedlog/package-tree.html |   263 +
 .../org/apache/distributedlog/package-use.html  |   592 +
 .../distributedlog/service/ClientUtils.html     |   274 +
 .../distributedlog/service/DLSocketAddress.html |   476 +
 .../service/DistributedLogClient.html           |   401 +
 .../service/DistributedLogClientBuilder.html    |   931 ++
 .../service/DistributedLogCluster.Builder.html  |   445 +
 .../service/DistributedLogCluster.DLServer.html |   353 +
 .../service/DistributedLogCluster.html          |   342 +
 .../service/DistributedLogServer.html           |   362 +
 .../service/DistributedLogServerApp.html        |   240 +
 .../service/DistributedLogServiceImpl.html      |   530 +
 .../service/FatalErrorHandler.html              |   233 +
 .../distributedlog/service/MonitorService.html  |   322 +
 .../service/MonitorServiceApp.html              |   240 +
 .../distributedlog/service/ResponseUtils.html   |   404 +
 .../service/ServerFeatureKeys.html              |   368 +
 .../service/class-use/ClientUtils.html          |   126 +
 .../service/class-use/DLSocketAddress.html      |   200 +
 .../service/class-use/DistributedLogClient.html |   224 +
 .../class-use/DistributedLogClientBuilder.html  |   359 +
 .../DistributedLogCluster.Builder.html          |   222 +
 .../DistributedLogCluster.DLServer.html         |   126 +
 .../class-use/DistributedLogCluster.html        |   168 +
 .../service/class-use/DistributedLogServer.html |   181 +
 .../class-use/DistributedLogServerApp.html      |   126 +
 .../class-use/DistributedLogServiceImpl.html    |   168 +
 .../service/class-use/FatalErrorHandler.html    |   170 +
 .../service/class-use/MonitorService.html       |   126 +
 .../service/class-use/MonitorServiceApp.html    |   126 +
 .../service/class-use/ResponseUtils.html        |   126 +
 .../service/class-use/ServerFeatureKeys.html    |   177 +
 .../distributedlog/service/package-frame.html   |    41 +
 .../distributedlog/service/package-summary.html |   261 +
 .../distributedlog/service/package-tree.html    |   167 +
 .../distributedlog/service/package-use.html     |   249 +
 .../subscription/SubscriptionStateStore.html    |   264 +
 .../subscription/SubscriptionsStore.html        |   315 +
 .../class-use/SubscriptionStateStore.html       |   126 +
 .../class-use/SubscriptionsStore.html           |   196 +
 .../subscription/package-frame.html             |    22 +
 .../subscription/package-summary.html           |   150 +
 .../subscription/package-tree.html              |   144 +
 .../subscription/package-use.html               |   186 +
 .../docs/latest/api/java/overview-frame.html    |    44 +
 .../docs/latest/api/java/overview-summary.html  |   294 +
 content/docs/latest/api/java/overview-tree.html |   505 +
 content/docs/latest/api/java/package-list       |    23 +
 content/docs/latest/api/java/script.js          |    30 +
 .../docs/latest/api/java/serialized-form.html   |   660 ++
 content/docs/latest/api/java/stylesheet.css     |   574 +
 content/docs/latest/basics/introduction.html    |     9 +-
 content/docs/latest/deployment/cluster.html     |    15 +-
 content/docs/latest/deployment/docker.html      |     9 +-
 .../docs/latest/deployment/global-cluster.html  |     9 +-
 .../bootstrap/glyphicons-halflings-regular.svg  |     2 +-
 content/docs/latest/index.html                  |    11 +-
 content/docs/latest/js/bootstrap.min.js         |     2 +-
 content/docs/latest/performance/main.html       |     9 +-
 content/docs/latest/start/building.html         |    13 +-
 content/docs/latest/start/download.html         |    33 +-
 content/docs/latest/start/quickstart.html       |    13 +-
 .../latest/tutorials/analytics-mapreduce.html   |     9 +-
 content/docs/latest/tutorials/basic-1.html      |    25 +-
 content/docs/latest/tutorials/basic-2.html      |    19 +-
 content/docs/latest/tutorials/basic-3.html      |    19 +-
 content/docs/latest/tutorials/basic-4.html      |    19 +-
 content/docs/latest/tutorials/basic-5.html      |    19 +-
 content/docs/latest/tutorials/basic-6.html      |    19 +-
 content/docs/latest/tutorials/main.html         |     9 +-
 content/docs/latest/tutorials/messaging-1.html  |    19 +-
 content/docs/latest/tutorials/messaging-2.html  |    19 +-
 content/docs/latest/tutorials/messaging-3.html  |     9 +-
 content/docs/latest/tutorials/messaging-4.html  |     9 +-
 content/docs/latest/tutorials/messaging-5.html  |     9 +-
 .../tutorials/replicatedstatemachines.html      |     9 +-
 content/docs/latest/user_guide/api/core.html    |     9 +-
 content/docs/latest/user_guide/api/main.html    |    10 +-
 .../docs/latest/user_guide/api/practice.html    |     9 +-
 content/docs/latest/user_guide/api/proxy.html   |     9 +-
 .../latest/user_guide/architecture/main.html    |     9 +-
 .../latest/user_guide/configuration/client.html |     9 +-
 .../latest/user_guide/configuration/core.html   |     9 +-
 .../latest/user_guide/configuration/main.html   |     9 +-
 .../latest/user_guide/configuration/perlog.html |     9 +-
 .../latest/user_guide/configuration/proxy.html  |     9 +-
 .../latest/user_guide/considerations/main.html  |     9 +-
 content/docs/latest/user_guide/design/main.html |     9 +-
 .../user_guide/globalreplicatedlog/main.html    |     9 +-
 .../latest/user_guide/implementation/core.html  |     9 +-
 .../latest/user_guide/implementation/main.html  |     9 +-
 .../user_guide/implementation/storage.html      |    11 +-
 .../user_guide/implementation/writeproxy.html   |     9 +-
 content/docs/latest/user_guide/main.html        |     9 +-
 .../latest/user_guide/references/features.html  |     9 +-
 .../docs/latest/user_guide/references/main.html |     9 +-
 .../latest/user_guide/references/metrics.html   |     9 +-
 content/faq/index.html                          |    13 +-
 content/feed.xml                                |    60 +-
 .../bootstrap/glyphicons-halflings-regular.svg  |     2 +-
 content/index.html                              |    31 +-
 content/js/bootstrap.min.js                     |     2 +-
 content/project/presentations/index.html        |    11 +-
 .../releases/2017/04/25/the-first-release.html  |   245 +
 .../2015/09/19/kafka-vs-distributedlog.html     |   444 +-
 .../2016/09/19/kafka-vs-distributedlog.html     |   447 +
 686 files changed, 193374 insertions(+), 583 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/ef7245e8/content/blog/index.html
----------------------------------------------------------------------
diff --git a/content/blog/index.html b/content/blog/index.html
index 0bb14de..da3b741 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -83,7 +83,10 @@
 		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li class="dropdown-header">Snapshot (Developement)</li>
-            <li><a href="/docs/latest">Latest</a></li>
+            <li><a href="/docs/latest">0.5.0-incubating-SNAPSHOT</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Releases</li>
+            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
             <li role="separator" class="divider"></li>
             <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
@@ -135,6 +138,12 @@
               </a>
             </li>
             <li>
+              <a href="https://getdl-slack.herokuapp.com">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Slack
+              </a>
+            </li>
+            <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                 <small><span class="glyphicon glyphicon-new-window"></span></small>
                 Wiki
@@ -159,7 +168,24 @@
 <p>This is the blog for the Apache DistributedLog project. This blog contains news and updates
 for the project.</p>
 
-<h3 id="a-classpost-link-hreftechnical-review20150919kafka-vs-distributedloga-technical-review-of-kafka-and-distributedloga"><a class="post-link" href="/technical-review/2015/09/19/kafka-vs-distributedlog">A Technical Review of Kafka and DistributedLog</a></h3>
+<h3 id="a-classpost-link-hrefreleases20170425the-first-releasehtmlthe-first-release-of-apache-distributedloga"><a class="post-link" href="/releases/2017/04/25/the-first-release.html">The first release of Apache DistributedLog</a></h3>
+<p><i>Apr 25, 2017 \u2022  Sijie Guo [<a href="https://twitter.com/sijieg">@sijieg</a>]
+</i></p>
+
+<p>I\u2019m happy to announce that Apache DistributedLog has officially released its first release under the apache umbrella - 0.4.0-incubating.
+This is an exciting milestone for the project, which joined the Apache Software Foundation and the Apache Incubator last year.</p>
+
+<!-- Render a "read more" button if the post is longer than the excerpt -->
+
+<p>
+<a class="btn btn-default btn-sm" href="/releases/2017/04/25/the-first-release.html" role="button">
+Read more&nbsp;<span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span>
+</a>
+</p>
+
+<hr />
+
+<h3 id="a-classpost-link-hreftechnical-review20160919kafka-vs-distributedloghtmla-technical-review-of-kafka-and-distributedloga"><a class="post-link" href="/technical-review/2016/09/19/kafka-vs-distributedlog.html">A Technical Review of Kafka and DistributedLog</a></h3>
 <p><i>Sep 19, 2016 \u2022  Sijie Guo [<a href="https://twitter.com/sijieg">@sijieg</a>]
 </i></p>
 
@@ -188,7 +214,7 @@ real-time systems. One can use DistributedLog to build and experiment with diffe
 <!-- Render a "read more" button if the post is longer than the excerpt -->
 
 <p>
-<a class="btn btn-default btn-sm" href="/technical-review/2015/09/19/kafka-vs-distributedlog" role="button">
+<a class="btn btn-default btn-sm" href="/technical-review/2016/09/19/kafka-vs-distributedlog.html" role="button">
 Read more&nbsp;<span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span>
 </a>
 </p>

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/ef7245e8/content/coming-soon.html
----------------------------------------------------------------------
diff --git a/content/coming-soon.html b/content/coming-soon.html
index 6ec4ced..55c03bb 100644
--- a/content/coming-soon.html
+++ b/content/coming-soon.html
@@ -83,7 +83,10 @@
 		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li class="dropdown-header">Snapshot (Developement)</li>
-            <li><a href="/docs/latest">Latest</a></li>
+            <li><a href="/docs/latest">0.5.0-incubating-SNAPSHOT</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Releases</li>
+            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
             <li role="separator" class="divider"></li>
             <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
@@ -135,6 +138,12 @@
               </a>
             </li>
             <li>
+              <a href="https://getdl-slack.herokuapp.com">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Slack
+              </a>
+            </li>
+            <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                 <small><span class="glyphicon glyphicon-new-window"></span></small>
                 Wiki

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/ef7245e8/content/community/index.html
----------------------------------------------------------------------
diff --git a/content/community/index.html b/content/community/index.html
index c7da007..8d3b325 100644
--- a/content/community/index.html
+++ b/content/community/index.html
@@ -83,7 +83,10 @@
 		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li class="dropdown-header">Snapshot (Developement)</li>
-            <li><a href="/docs/latest">Latest</a></li>
+            <li><a href="/docs/latest">0.5.0-incubating-SNAPSHOT</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Releases</li>
+            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
             <li role="separator" class="divider"></li>
             <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
@@ -135,6 +138,12 @@
               </a>
             </li>
             <li>
+              <a href="https://getdl-slack.herokuapp.com">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Slack
+              </a>
+            </li>
+            <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                 <small><span class="glyphicon glyphicon-new-window"></span></small>
                 Wiki
@@ -157,6 +166,7 @@
         <ul id="markdown-toc">
   <li><a href="#community" id="markdown-toc-community">Community</a>    <ul>
       <li><a href="#mailing-lists" id="markdown-toc-mailing-lists">Mailing Lists</a></li>
+      <li><a href="#slack-channel" id="markdown-toc-slack-channel">Slack Channel</a></li>
       <li><a href="#issue-tracker" id="markdown-toc-issue-tracker">Issue Tracker</a></li>
       <li><a href="#source-code" id="markdown-toc-source-code">Source Code</a>        <ul>
           <li><a href="#main-source-repositories" id="markdown-toc-main-source-repositories">Main source repositories</a></li>
@@ -221,6 +231,14 @@
   </tr>
 </table>
 
+<h2 id="slack-channel">Slack Channel</h2>
+
+<p>There is a Slack channel dedicated to Apache DistributedLog at <a href="https://apachedistributedlog.slack.com/">https://apachedistributedlog.slack.com/</a>. The slack channel can be used for online discussions about Apache DistributedLog as community. Users can get help using DistributedLog, follow developement discussions and connect with the community.</p>
+
+<p>But developers should be careful to move or duplicate all the official or useful discussions to the issue tracking system or dev mailing list.</p>
+
+<p>If you are interested in connecting with the community using Slack channel, you can get invite from <a href="https://getdl-slack.herokuapp.com/">here</a>.</p>
+
 <h2 id="issue-tracker">Issue Tracker</h2>
 
 <p>We use JIRA to track all code related issues: <a href="https://issues.apache.org/jira/browse/DL">https://issues.apache.org/jira/browse/DL</a>.</p>

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/ef7245e8/content/community/team/index.html
----------------------------------------------------------------------
diff --git a/content/community/team/index.html b/content/community/team/index.html
index c8279c4..534d1c4 100644
--- a/content/community/team/index.html
+++ b/content/community/team/index.html
@@ -83,7 +83,10 @@
 		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li class="dropdown-header">Snapshot (Developement)</li>
-            <li><a href="/docs/latest">Latest</a></li>
+            <li><a href="/docs/latest">0.5.0-incubating-SNAPSHOT</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Releases</li>
+            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
             <li role="separator" class="divider"></li>
             <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
@@ -135,6 +138,12 @@
               </a>
             </li>
             <li>
+              <a href="https://getdl-slack.herokuapp.com">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Slack
+              </a>
+            </li>
+            <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                 <small><span class="glyphicon glyphicon-new-window"></span></small>
                 Wiki

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/ef7245e8/content/contribute/index.html
----------------------------------------------------------------------
diff --git a/content/contribute/index.html b/content/contribute/index.html
index 4ca3cbb..073ce70 100644
--- a/content/contribute/index.html
+++ b/content/contribute/index.html
@@ -83,7 +83,10 @@
 		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li class="dropdown-header">Snapshot (Developement)</li>
-            <li><a href="/docs/latest">Latest</a></li>
+            <li><a href="/docs/latest">0.5.0-incubating-SNAPSHOT</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Releases</li>
+            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
             <li role="separator" class="divider"></li>
             <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
@@ -135,6 +138,12 @@
               </a>
             </li>
             <li>
+              <a href="https://getdl-slack.herokuapp.com">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Slack
+              </a>
+            </li>
+            <li>
               <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                 <small><span class="glyphicon glyphicon-new-window"></span></small>
                 Wiki

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/ef7245e8/content/docs/0.4.0-incubating/admin_guide/bookkeeper.html
----------------------------------------------------------------------
diff --git a/content/docs/0.4.0-incubating/admin_guide/bookkeeper.html b/content/docs/0.4.0-incubating/admin_guide/bookkeeper.html
new file mode 100644
index 0000000..da1401c
--- /dev/null
+++ b/content/docs/0.4.0-incubating/admin_guide/bookkeeper.html
@@ -0,0 +1,709 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Apache DistributedLog (incubating)</title>
+  <meta name="description" content="Apache DistributedLog is an high performance replicated log.
+">
+
+  <link rel="stylesheet" href="/docs/0.4.0-incubating/styles/site.css">
+  <link rel="stylesheet" href="/docs/0.4.0-incubating/css/theme.css">
+  <!-- JQuery -->
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
+  <script src="/docs/0.4.0-incubating/js/bootstrap.min.js"></script>
+  <link rel="canonical" href="http://distributedlog.incubator.apache.org/docs/0.4.0-incubating/admin_guide/bookkeeper.html" data-proofer-ignore>
+  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog (incubating)" href="http://distributedlog.incubator.apache.org/docs/0.4.0-incubating/feed.xml">
+  <!-- Font Awesome -->
+  <script src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/3.2.0/anchor.min.js"></script>
+  <!-- Google Analytics -->
+  <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-83870961-1', 'auto');
+  ga('send', 'pageview');
+  </script>
+  <!-- End Google Analytics -->
+  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
+</head>
+
+
+  <body role="document">
+
+    
+<nav class="navbar navbar-default navbar-fixed-top">
+  <div class="container">
+    <div class="navbar-header">
+      <a href="/" class="navbar-brand" >
+        <img alt="Brand" style="height: 28px" src="/docs/0.4.0-incubating/images/distributedlog_logo_navbar.png">
+      </a>
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+    </div>
+    <div id="navbar" class="navbar-collapse collapse">
+      <ul class="nav navbar-nav">
+        <!-- Overview -->
+        <li><a href="/docs/0.4.0-incubating/">V0.4.0</a></li>
+        <!-- Concepts -->
+        <li><a href="/docs/0.4.0-incubating/basics/introduction">Concepts</a></li>
+        <!-- Quick Start -->
+        <li>
+          <a href="/docs/0.4.0-incubating/start" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Start<span class="caret"></span></a>
+          <ul class="dropdown-menu" role="menu">
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/start/building.html">
+                Build DistributedLog from Source
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/start/download.html">
+                Download Releases
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Quickstart</strong></li>
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/start/quickstart.html">
+                Setup & Run Example
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/basic-1.html">
+                API - Write Records (via core library)
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/basic-2.html">
+                API - Write Records (via write proxy)
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/basic-5.html">
+                API - Read Records
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Deployment</strong></li>
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/deployment/cluster.html">
+                Cluster Setup
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/deployment/global-cluster.html">
+                Global Cluster Setup
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/deployment/docker.html">
+                Docker
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- API -->
+        <li>
+          <a href="/docs/0.4.0-incubating/start" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">API<span class="caret"></span></a>
+          <ul class="dropdown-menu" role="menu">
+            <li><a href="/docs/0.4.0-incubating/api/java">Java</a></li>
+          </ul>
+        </li>
+        <!-- User Guide -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">User Guide<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/basics/introduction.html">
+                Introduction
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/considerations/main.html">
+                Considerations
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/architecture/main.html">
+                Architecture
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/api/main.html">
+                API
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/configuration/main.html">
+                Configuration
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/design/main.html">
+                Detail Design
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/globalreplicatedlog/main.html">
+                Global Replicated Log
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/implementation/main.html">
+                Implementation
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/user_guide/references/main.html">
+                References
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- Admin Guide -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin Guide<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="/docs/0.4.0-incubating/deployment/cluster">Cluster Setup</a></li>
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/operations.html">
+                Operations
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/performance.html">
+                Performance Tuning
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/loadtest.html">
+                Load Test
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/hardware.html">
+                Hardware
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/monitoring.html">
+                Monitoring
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/zookeeper.html">
+                ZooKeeper
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/admin_guide/bookkeeper.html">
+                BookKeeper
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- Tutorials -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Tutorials<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li class="dropdown-header"><strong>Basic</strong></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/basic-1">Write Records (via Core Library)</a></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/basic-2">Write Records (via Write Proxy)</a></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/basic-3">Write Records to multiple streams</a></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/basic-4">Atomic Write Records</a></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/basic-5">Tailing Read Records</a></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/basic-6">Rewind Read Records</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Messaging</strong></li>
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/messaging-1.html">
+                Write records to partitioned streams
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/messaging-2.html">
+                Write records to multiple streams (load balancer)
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/messaging-3.html">
+                At-least-once Processing
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/messaging-4.html">
+                Exact-Once Processing
+              </a>
+            </li>
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/messaging-5.html">
+                Implement a kafka-like pub/sub system
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Replicated State Machines</strong></li>
+            
+            
+            <li>
+              <a href="/docs/0.4.0-incubating/tutorials/replicatedstatemachines.html">
+                Build replicated state machines
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Analytics</strong></li>
+            <li><a href="/docs/0.4.0-incubating/tutorials/analytics-mapreduce">Process log streams using MapReduce</a></li>
+          </ul>
+        </li>
+      </ul>
+    </div><!--/.nav-collapse -->
+  </div>
+</nav>
+
+
+<link rel="stylesheet" href="">
+
+
+    <div class="container" role="main">
+
+      <div class="row">
+        
+        <!--
+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.
+-->
+
+
+<div class="row">
+  <!-- Sub Navigation -->
+  <div class="col-sm-3">
+    <ul id="sub-nav">
+      
+      
+      
+        
+        <li><a href="/docs/0.4.0-incubating/admin_guide/main.html" class="">Admin Guide</a>
+          
+          <ul>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/operations.html" class="">
+                  Operations
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/deployment/cluster.html" class="">
+                  Cluster Setup
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/deployment/global-cluster.html" class="">
+                  Global Cluster Setup
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/performance.html" class="">
+                  Performance Tuning
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/loadtest.html" class="">
+                  Load Test
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/hardware.html" class="">
+                  Hardware
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/monitoring.html" class="">
+                  Monitoring
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/zookeeper.html" class="">
+                  ZooKeeper
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="/docs/0.4.0-incubating/admin_guide/bookkeeper.html" class="active">
+                  BookKeeper
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+          </ul>
+          
+        </li>
+      
+    </ul>
+  </div>
+  <!-- Main -->
+  <div class="col-sm-9">
+    <!-- Top anchor -->
+    <a href="#top"></a>
+
+    <!-- Breadcrumbs above the main heading -->
+    <ol class="breadcrumb">
+
+      
+      
+      
+
+      
+      
+
+      
+
+      
+
+      <li><a href="/docs/0.4.0-incubating/admin_guide/main.html">Admin Guide</a></li>
+      
+      
+      <li class="active">BookKeeper</li>
+    </ol>
+
+    <div class="text">
+      <!-- Content -->
+      <div class="contents topic" id="bookkeeper">
+<p class="topic-title first">BookKeeper</p>
+<ul class="simple">
+<li><a class="reference internal" href="#id1" id="id3">BookKeeper</a><ul>
+<li><a class="reference internal" href="#run-from-bookkeeper-source" id="id4">Run from bookkeeper source</a></li>
+<li><a class="reference internal" href="#run-from-distributedlog-source" id="id5">Run from distributedlog source</a><ul>
+<li><a class="reference internal" href="#build" id="id6">Build</a></li>
+<li><a class="reference internal" href="#configuration" id="id7">Configuration</a><ul>
+<li><a class="reference internal" href="#port" id="id8">Port</a></li>
+<li><a class="reference internal" href="#disks" id="id9">Disks</a></li>
+<li><a class="reference internal" href="#zookeeper" id="id10">ZooKeeper</a></li>
+<li><a class="reference internal" href="#stats-provider" id="id11">Stats Provider</a></li>
+<li><a class="reference internal" href="#index-settings" id="id12">Index Settings</a></li>
+<li><a class="reference internal" href="#journal-settings" id="id13">Journal Settings</a></li>
+<li><a class="reference internal" href="#thread-settings" id="id14">Thread Settings</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#run" id="id15">Run</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="id1">
+<h2><a class="toc-backref" href="#id3">BookKeeper</a></h2>
+<p>For reliable BookKeeper service, you should deploy BookKeeper in a cluster.</p>
+<div class="section" id="run-from-bookkeeper-source">
+<h3><a class="toc-backref" href="#id4">Run from bookkeeper source</a></h3>
+<p>The version of BookKeeper that DistributedLog depends on is not the official opensource version.
+It is twitter's production version <cite>4.3.4-TWTTR</cite>, which is available in <cite>https://github.com/twitter/bookkeeper</cite>.
+We are working actively with BookKeeper community to merge all twitter's changes back to the community.</p>
+<p>The major changes in Twitter's bookkeeper includes:</p>
+<ul class="simple">
+<li><a class="reference external" href="https://issues.apache.org/jira/browse/BOOKKEEPER-670">BOOKKEEPER-670</a>: Long poll reads and LastAddConfirmed piggyback. It is to reduce the tailing read latency.</li>
+<li><a class="reference external" href="https://issues.apache.org/jira/browse/BOOKKEEPER-759">BOOKKEEPER-759</a>: Delay ensemble change if it doesn't break ack quorum constraint. It is to reduce the write latency on bookie failures.</li>
+<li><a class="reference external" href="https://issues.apache.org/jira/browse/BOOKKEEPER-757">BOOKKEEPER-757</a>: Ledger recovery improvements, to reduce the latency on ledger recovery.</li>
+<li>Misc improvements on bookie recovery and bookie storage.</li>
+</ul>
+<p>To build bookkeeper, run:</p>
+<ol class="arabic simple">
+<li>First checkout the bookkeeper source code from twitter's branch.</li>
+</ol>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ git clone https://github.com/twitter/bookkeeper.git bookkeeper
+</span></code></pre></td></tr></table></div></figure><ol class="arabic simple" start="2">
+<li>Build the bookkeeper package:</li>
+</ol>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+<span class="line-number">2</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ <span class="nb">cd</span> bookkeeper
+</span><span class="line">$ mvn clean package assembly:single -DskipTests
+</span></code></pre></td></tr></table></div></figure><p>However, since <cite>bookkeeper-server</cite> is one of the dependency of <cite>distributedlog-service</cite>.
+You could simply run bookkeeper using same set of scripts provided in <cite>distributedlog-service</cite>.
+In the following sections, we will describe how to run bookkeeper using the scripts provided in
+<cite>distributedlog-service</cite>.</p>
+</div>
+<div class="section" id="run-from-distributedlog-source">
+<h3><a class="toc-backref" href="#id5">Run from distributedlog source</a></h3>
+<div class="section" id="build">
+<h4><a class="toc-backref" href="#id6">Build</a></h4>
+<p>First of all, build DistributedLog:</p>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ mvn clean install -DskipTests
+</span></code></pre></td></tr></table></div></figure></div>
+<div class="section" id="configuration">
+<h4><a class="toc-backref" href="#id7">Configuration</a></h4>
+<p>The configuration file <cite>bookie.conf</cite> under <cite>distributedlog-service/conf</cite> is a template of production
+configuration to run a bookie node. Most of the configuration settings are good for production usage.
+You might need to configure following settings according to your environment and hardware platform.</p>
+<div class="section" id="port">
+<h5><a class="toc-backref" href="#id8">Port</a></h5>
+<p>By default, the service port is <cite>3181</cite>, where the bookie server listens on. You can change the port
+to whatever port you like by modifying the following setting.</p>
+<pre class="literal-block">
+bookiePort=3181
+</pre>
+</div>
+<div class="section" id="disks">
+<h5><a class="toc-backref" href="#id9">Disks</a></h5>
+<p>You need to configure following settings according to the disk layout of your hardware. It is recommended
+to put <cite>journalDirectory</cite> under a separated disk from others for performance. It is okay to set
+<cite>indexDirectories</cite> to be same as <cite>ledgerDirectories</cite>. However, it is recommended to put <cite>indexDirectories</cite>
+to a SSD driver for better performance.</p>
+<pre class="literal-block">
+# Directory Bookkeeper outputs its write ahead log
+journalDirectory=/tmp/data/bk/journal
+
+# Directory Bookkeeper outputs ledger snapshots
+ledgerDirectories=/tmp/data/bk/ledgers
+
+# Directory in which index files will be stored.
+indexDirectories=/tmp/data/bk/ledgers
+</pre>
+<p>To better understand how bookie nodes work, please check <a class="reference external" href="http://bookkeeper.apache.org/">bookkeeper</a> website for more details.</p>
+</div>
+<div class="section" id="zookeeper">
+<h5><a class="toc-backref" href="#id10">ZooKeeper</a></h5>
+<p>You need to configure following settings to point the bookie to the zookeeper server that it is using.
+You need to make sure <cite>zkLedgersRootPath</cite> exists before starting the bookies.</p>
+<pre class="literal-block">
+# Root zookeeper path to store ledger metadata
+# This parameter is used by zookeeper-based ledger manager as a root znode to
+# store all ledgers.
+zkLedgersRootPath=/messaging/bookkeeper/ledgers
+# A list of one of more servers on which zookeeper is running.
+zkServers=localhost:2181
+</pre>
+</div>
+<div class="section" id="stats-provider">
+<h5><a class="toc-backref" href="#id11">Stats Provider</a></h5>
+<p>Bookies use <cite>StatsProvider</cite> to expose its metrics. The <cite>StatsProvider</cite> is a pluggable library to
+adopt to various stats collecting systems. Please check <a class="reference external" href="./monitoring">monitoring</a> for more details.</p>
+<pre class="literal-block">
+# stats provide - use `codahale` metrics library
+statsProviderClass=org.apache.bookkeeper.stats.CodahaleMetricsServletProvider
+
+### Following settings are stats provider related settings
+
+# Exporting codahale stats in http port `9001`
+codahaleStatsHttpPort=9001
+</pre>
+</div>
+<div class="section" id="index-settings">
+<h5><a class="toc-backref" href="#id12">Index Settings</a></h5>
+<ul class="simple">
+<li><cite>pageSize</cite>: size of a index page in ledger cache, in bytes. If there are large number
+of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.</li>
+<li><cite>pageLimit</cite>: The maximum number of index pages in ledger cache. If nummber of index pages
+reaches the limitation, bookie server starts to swap some ledgers from memory to disk.
+Increase this value when swap becomes more frequent. But make sure <cite>pageLimit*pageSize</cite>
+should not be more than JVM max memory limitation.</li>
+</ul>
+</div>
+<div class="section" id="journal-settings">
+<h5><a class="toc-backref" href="#id13">Journal Settings</a></h5>
+<ul class="simple">
+<li><cite>journalMaxGroupWaitMSec</cite>: The maximum wait time for group commit. It is valid only when
+<cite>journalFlushWhenQueueEmpty</cite> is false.</li>
+<li><cite>journalFlushWhenQueueEmpty</cite>: Flag indicates whether to flush/sync journal. If it is <cite>true</cite>,
+bookie server will sync journal when there is no other writes in the journal queue.</li>
+<li><cite>journalBufferedWritesThreshold</cite>: The maximum buffered writes for group commit, in bytes.
+It is valid only when <cite>journalFlushWhenQueueEmpty</cite> is false.</li>
+<li><cite>journalBufferedEntriesThreshold</cite>: The maximum buffered writes for group commit, in entries.
+It is valid only when <cite>journalFlushWhenQueueEmpty</cite> is false.</li>
+</ul>
+<p>Setting <cite>journalFlushWhenQueueEmpty</cite> to <cite>true</cite> will produce low latency when the traffic is low.
+However, the latency varies a lost when the traffic is increased. So it is recommended to set
+<cite>journalMaxGroupWaitMSec</cite>, <cite>journalBufferedEntriesThreshold</cite> and <cite>journalBufferedWritesThreshold</cite>
+to reduce the number of fsyncs made to journal disk, to achieve sustained low latency.</p>
+</div>
+<div class="section" id="thread-settings">
+<h5><a class="toc-backref" href="#id14">Thread Settings</a></h5>
+<p>It is recommended to configure following settings to align with the cpu cores of the hardware.</p>
+<pre class="literal-block">
+numAddWorkerThreads=4
+numJournalCallbackThreads=4
+numReadWorkerThreads=4
+numLongPollWorkerThreads=4
+</pre>
+</div>
+</div>
+<div class="section" id="run">
+<h4><a class="toc-backref" href="#id15">Run</a></h4>
+<p>As <cite>bookkeeper-server</cite> is shipped as part of <cite>distributedlog-service</cite>, you could use the <cite>dlog-daemon.sh</cite>
+script to start <cite>bookie</cite> as daemon thread.</p>
+<p>Start the bookie:</p>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ ./distributedlog-service/bin/dlog-daemon.sh start bookie --conf /path/to/bookie/conf
+</span></code></pre></td></tr></table></div></figure><p>Stop the bookie:</p>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ ./distributedlog-service/bin/dlog-daemon.sh stop bookie
+</span></code></pre></td></tr></table></div></figure><p>Please check <a class="reference external" href="http://bookkeeper.apache.org/">bookkeeper</a> website for more details.</p>
+</div>
+</div>
+</div>
+
+
+    </div>
+  </div>
+</div>
+
+
+
+      </div>
+
+
+    <hr>
+  <div class="row">
+      <div class="col-xs-12">
+          <footer>
+              <p class="text-center">&copy; Copyright 2016
+                  <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.
+              </p>
+              <p class="text-center">
+                  <a href="/docs/0.4.0-incubating/feed.xml">RSS Feed</a>
+              </p>
+          </footer>
+      </div>
+  </div>
+  <!-- container div end -->
+</div>
+
+
+    <script>
+  (function () {
+    'use strict';
+    anchors.options.placement = 'right';
+    anchors.add();
+  })();
+</script>
+
+  </body>
+
+</html>