sijie closed pull request #752: Add release 4.6.0 to releases menu
URL: https://github.com/apache/bookkeeper/pull/752
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/site/_config.yml b/site/_config.yml
index 7c305e4b0..302c2e4d4 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -10,6 +10,7 @@ twitter_url: https://twitter.com/asfbookkeeper
 livereload: true
 
 versions:
+- "4.6.0"
 # [next_version_placehodler]
 - "4.5.1"
 - "4.5.0"
@@ -26,8 +27,8 @@ archived_versions:
 - "4.2.0"
 - "4.1.0"
 - "4.0.0"
-latest_version: "4.6.0-SNAPSHOT"
-latest_release: "4.5.1"
+latest_version: "4.7.0-SNAPSHOT"
+latest_release: "4.6.0"
 stable_release: "4.5.0"
 distributedlog_version: "0.5.0"
 
diff --git a/site/docs/4.5.1/overview/overview.md 
b/site/docs/4.5.1/overview/overview.md
index dba92dd25..9bef23255 100644
--- a/site/docs/4.5.1/overview/overview.md
+++ b/site/docs/4.5.1/overview/overview.md
@@ -1,5 +1,5 @@
 ---
-title: Apache BookKeeper&trades; 4.5.1 Documentation 
+title: Apache BookKeeper™ 4.5.1
 ---
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
diff --git a/site/docs/4.6.0/admin/autorecovery.md 
b/site/docs/4.6.0/admin/autorecovery.md
index bd11a8886..b1dd078f9 100644
--- a/site/docs/4.6.0/admin/autorecovery.md
+++ b/site/docs/4.6.0/admin/autorecovery.md
@@ -11,14 +11,14 @@ When a {% pop bookie %} crashes, all {% pop ledgers %} on 
that bookie become und
 
 You can manually recover failed bookies using the 
[`bookkeeper`](../../reference/cli) command-line tool. You need to specify:
 
-* that the `org.apache.bookkeeper.tools.BookKeeperTools` class needs to be run
+* the `shell recover` option 
 * an IP and port for your BookKeeper cluster's ZooKeeper ensemble
 * the IP and port for the failed bookie
 
 Here's an example:
 
 ```bash
-$ bookkeeper-server/bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools 
\
+$ bookkeeper-server/bin/bookkeeper shell recover \
   zk1.example.com:2181 \ # IP and port for ZooKeeper
   192.168.1.10:3181      # IP and port for the failed bookie
 ```
@@ -26,7 +26,7 @@ $ bookkeeper-server/bin/bookkeeper 
org.apache.bookkeeper.tools.BookKeeperTools \
 If you wish, you can also specify which bookie you'd like to rereplicate to. 
Here's an example:
 
 ```bash
-$ bookkeeper-server/bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools 
\
+$ bookkeeper-server/bin/bookkeeper shell recover \
   zk1.example.com:2181 \ # IP and port for ZooKeeper
   192.168.1.10:3181 \    # IP and port for the failed bookie
   192.168.1.11:3181      # IP and port for the bookie to rereplicate to
diff --git a/site/docs/4.6.0/admin/bookies.md b/site/docs/4.6.0/admin/bookies.md
index f9b1dcf94..1b0427dae 100644
--- a/site/docs/4.6.0/admin/bookies.md
+++ b/site/docs/4.6.0/admin/bookies.md
@@ -162,7 +162,7 @@ If the change was the result of an accidental configuration 
change, the change c
 1. Run the following command to re-replicate the data:
 
    ```bash
-   $ bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools \
+   $ bookkeeper-server/bin/bookkeeper shell recover \
      <zkserver> \
      <oldbookie> \
      <newbookie>
@@ -171,7 +171,7 @@ If the change was the result of an accidental configuration 
change, the change c
    The ZooKeeper server, old bookie, and new bookie, are all identified by 
their external IP and `bookiePort` (3181 by default). Here's an example:
 
    ```bash
-   $ bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools \
+   $ bookkeeper-server/bin/bookkeeper shell recover \
      zk1.example.com \
      192.168.1.10:3181 \
      192.168.1.10:3181
diff --git a/site/docs/4.6.0/admin/http.md b/site/docs/4.6.0/admin/http.md
new file mode 100644
index 000000000..0097adc62
--- /dev/null
+++ b/site/docs/4.6.0/admin/http.md
@@ -0,0 +1,394 @@
+---
+title: BookKeeper Admin REST API
+---
+
+This document introduces BookKeeper HTTP endpoints, which can be used for 
BookKeeper administration.
+To use this feature, set `httpServerEnabled` to `true` in file 
`conf/bk_server.conf`.
+
+## All the endpoints
+
+Currently all the HTTP endpoints could be divided into these 4 components:
+1. Heartbeat: heartbeat for a specific bookie.
+1. Config: doing the server configuration for a specific bookie.
+1. Ledger: HTTP endpoints related to ledgers.
+1. Bookie: HTTP endpoints related to bookies.
+1. AutoRecovery: HTTP endpoints related to auto recovery.
+
+## Heartbeat
+
+### Endpoint: /heartbeat
+* Method: GET
+* Description: Get heartbeat status for a specific bookie
+* Response: 
+
+| Code   | Description |
+|:-------|:------------|
+|200 | Successful operation |
+
+## Config
+
+### Endpoint: /api/v1/config/server_config
+1. Method: GET
+    * Description: Get value of all configured values overridden on local 
server config
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+1. Method: PUT
+    * Description: Update a local server config
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |configName  | String | Yes | Configuration name(key) |
+        |configValue | String | Yes | Configuration value(value) |
+    * Body: 
+        ```json
+        {
+           "configName1": "configValue1",
+           "configName2": "configValue2"
+        }
+        ```
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+## Ledger
+
+### Endpoint: /api/v1/ledger/delete/?ledger_id=&lt;ledger_id&gt;
+1. Method: DELETE
+    * Description: Delete a ledger.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |ledger_id  | Long | Yes | ledger id of the ledger.  |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+### Endpoint: /api/v1/ledger/list/?print_metadata=&lt;metadata&gt;
+1. Method: GET
+    * Description: List all the ledgers.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |print_metadata | Boolean | No |  whether print out metadata  |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "ledgerId1": "ledgerMetadata1",
+          "ledgerId2": "ledgerMetadata2",
+          ...
+        }
+        ```
+
+### Endpoint: /api/v1/ledger/metadata/?ledger_id=&lt;ledger_id&gt;
+1. Method: GET
+    * Description: Get the metadata of a ledger.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |ledger_id  | Long | Yes | ledger id of the ledger.  |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "ledgerId1": "ledgerMetadata1"
+        }
+        ```    
+
+### Endpoint: 
/api/v1/ledger/read/?ledger_id=&lt;ledger_id&gt;&start_entry_id=&lt;start_entry_id&gt;&end_entry_id=&lt;end_entry_id&gt;
+1. Method: GET
+    * Description: Read a range of entries from ledger.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |ledger_id       | Long | Yes| ledger id of the ledger.  |
+        |start_entry_id  | Long | No | start entry id of read range. |
+        |end_entry_id    | Long | No | end entry id of read range.  |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "entryId1": "entry content 1",
+          "entryId2": "entry content 2",
+          ...
+        }
+        ```    
+
+## Bookie
+
+### Endpoint: 
/api/v1/bookie/list_bookies/?type=&lt;type&gt;&print_hostnames=&lt;hostnames&gt;
+1. Method: GET
+    * Description:  Get all the available bookies.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |type            | String  | Yes |  value: "rw" or "ro" , list 
read-write/read-only bookies. |
+        |print_hostnames | Boolean | No  |  whether print hostname of bookies. 
|
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "bookieSocketAddress1": "hostname1",
+          "bookieSocketAddress2": "hostname2",
+          ...
+        }
+        ```    
+
+### Endpoint: /api/v1/bookie/list_bookie_info
+1. Method: GET
+    * Description:  Get bookies disk usage info of this cluster.
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "bookieAddress" : {free: xxx, total: xxx},
+          "bookieAddress" : {free: xxx, total: xxx},
+          ...
+          "clusterInfo" : {total_free: xxx, total: xxx}
+        }
+        ```    
+
+### Endpoint: /api/v1/bookie/last_log_mark
+1. Method: GET
+    * Description:  Get the last log marker.
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          JournalId1 : position1,
+          JournalId2 : position2,
+          ...
+        }
+        ```   
+
+### Endpoint: /api/v1/bookie/list_disk_file/?file_type=&lt;type&gt;
+1. Method: GET
+    * Description:  Get all the files on disk of current bookie.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |type  | String | No | file type: journal/entrylog/index. |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "journal files" : "filename1 filename2 ...",
+          "entrylog files" : "filename1 filename2...",
+          "index files" : "filename1 filename2 ..."
+        }
+        ```
+
+### Endpoint: /api/v1/bookie/expand_storage
+1. Method: PUT
+    * Description:  Expand storage for a bookie.
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+## Auto recovery
+
+### Endpoint: /api/v1/autorecovery/bookie/
+1. Method: PUT
+    * Description:  Ledger data recovery for failed bookie
+    * Body: 
+        ```json
+        {
+          "bookie_src": [ "bookie_src1", "bookie_src2"... ],
+          "bookie_dest": [ "bookie_dest1", "bookie_dest2"... ],
+          "delete_cookie": <bool_value>
+        }
+        ```
+    * Parameters:
+     
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |bookie_src    | Strings | Yes | bookie source to recovery |
+        |bookie_dest   | Strings | No  | bookie data recovery destination |
+        |delete_cookie | Boolean | No  | Whether delete cookie |
+    * Response: 
+     
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+### Endpoint: 
/api/v1/autorecovery/list_under_replicated_ledger/?missingreplica=&lt;bookie_address&gt;&excludingmissingreplica=&lt;bookie_address&gt;
+1. Method: GET
+    * Description:  Get all under replicated ledgers.
+    * Parameters: 
+    
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        |missingreplica          | String | No | missing replica bookieId |
+        |excludingmissingreplica | String | No | exclude missing replica 
bookieId |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          [ledgerId1, ledgerId2...]
+        }
+        ```
+
+### Endpoint: /api/v1/autorecovery/who_is_auditor
+1. Method: GET
+    * Description:  Get auditor bookie id.
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+    * Response Body format:  
+    
+        ```json
+        {
+          "Auditor": "hostname/hostAddress:Port"
+        }
+        ```
+
+### Endpoint: /api/v1/autorecovery/trigger_audit
+1. Method: PUT
+    * Description: Force trigger audit by resting the lostBookieRecoveryDelay.
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+### Endpoint: /api/v1/autorecovery/lost_bookie_recovery_delay
+1. Method: GET
+    * Description: Get lostBookieRecoveryDelay value in seconds.
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+1. Method: PUT
+    * Description: Set lostBookieRecoveryDelay value in seconds.
+    * Body: 
+        ```json
+        {
+          "delay_seconds": <delay_seconds>
+        }
+        ```
+    * Parameters:
+     
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        | delay_seconds | Long | Yes |  set delay value in seconds. |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
+
+### Endpoint: /api/v1/autorecovery/decommission
+1. Method: PUT
+    * Description: Decommission Bookie, Force trigger Audit task and make sure 
all the ledgers stored in the decommissioning bookie are replicated.
+    * Body: 
+        ```json
+        {
+          "bookie_src": <bookie_src>
+        }
+        ```
+    * Parameters:
+     
+        | Name | Type | Required | Description |
+        |:-----|:-----|:---------|:------------|
+        | bookie_src | String | Yes |   Bookie src to decommission.. |
+    * Response:  
+    
+        | Code   | Description |
+        |:-------|:------------|
+        |200 | Successful operation |
+        |403 | Permission denied |
+        |404 | Not found |
diff --git a/site/docs/4.6.0/admin/metrics.md b/site/docs/4.6.0/admin/metrics.md
index 635135faf..142df3dcd 100644
--- a/site/docs/4.6.0/admin/metrics.md
+++ b/site/docs/4.6.0/admin/metrics.md
@@ -13,7 +13,7 @@ BookKeeper has stats provider implementations for four five 
sinks:
 Provider | Provider class name
 :--------|:-------------------
 [Codahale 
Metrics](https://mvnrepository.com/artifact/org.apache.bookkeeper.stats/codahale-metrics-provider)
 | `org.apache.bookkeeper.stats.CodahaleMetricsProvider`
-[Prometheus](https://prometheus.io/) | 
`org.apache.bookkeeper.stats.PrometheusMetricsProvider`
+[Prometheus](https://prometheus.io/) | 
`org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider`
 [Finagle](https://twitter.github.io/finagle/guide/Metrics.html) | 
`org.apache.bookkeeper.stats.FinagleStatsProvider`
 [Ostrich](https://github.com/twitter/ostrich) | 
`org.apache.bookkeeper.stats.OstrichProvider`
 [Twitter Science 
Provider](https://mvnrepository.com/artifact/org.apache.bookkeeper.stats/twitter-science-provider)
 | `org.apache.bookkeeper.stats.TwitterStatsProvider`
diff --git a/site/docs/4.6.0/api/distributedlog-api.md 
b/site/docs/4.6.0/api/distributedlog-api.md
index c143384cd..35c8a59c5 100644
--- a/site/docs/4.6.0/api/distributedlog-api.md
+++ b/site/docs/4.6.0/api/distributedlog-api.md
@@ -115,12 +115,12 @@ If you're using [Gradle](https://gradle.org/), add this 
to your [`build.gradle`]
 
 ```groovy
 dependencies {
-    compile group: 'org.apache.bookkeeper', name: 'bookkeeper-server', 
version: '4.5.0'
+    compile group: 'org.apache.bookkeeper', name: 'bookkeeper-server', 
version: '4.6.0'
 }
 
 // Alternatively:
 dependencies {
-    compile 'org.apache.bookkeeper:bookkeeper-server:4.5.0'
+    compile 'org.apache.bookkeeper:bookkeeper-server:4.6.0'
 }
 ```
 
diff --git a/site/docs/4.6.0/api/ledger-api.md 
b/site/docs/4.6.0/api/ledger-api.md
index 4e1070d71..8aa42ce8e 100644
--- a/site/docs/4.6.0/api/ledger-api.md
+++ b/site/docs/4.6.0/api/ledger-api.md
@@ -20,7 +20,7 @@ If you're using [Maven](https://maven.apache.org/), add this 
to your [`pom.xml`]
 
 ```xml
 <!-- in your <properties> block -->
-<bookkeeper.version>4.5.0</bookkeeper.version>
+<bookkeeper.version>4.6.0</bookkeeper.version>
 
 <!-- in your <dependencies> block -->
 <dependency>
@@ -36,12 +36,12 @@ If you're using [Gradle](https://gradle.org/), add this to 
your [`build.gradle`]
 
 ```groovy
 dependencies {
-    compile group: 'org.apache.bookkeeper', name: 'bookkeeper-server', 
version: '4.5.0'
+    compile group: 'org.apache.bookkeeper', name: 'bookkeeper-server', 
version: '4.6.0'
 }
 
 // Alternatively:
 dependencies {
-    compile 'org.apache.bookkeeper:bookkeeper-server:4.5.0'
+    compile 'org.apache.bookkeeper:bookkeeper-server:4.6.0'
 }
 ```
 
diff --git a/site/docs/4.6.0/deployment/dcos.md 
b/site/docs/4.6.0/deployment/dcos.md
index 3e174384e..ee3c956fd 100644
--- a/site/docs/4.6.0/deployment/dcos.md
+++ b/site/docs/4.6.0/deployment/dcos.md
@@ -137,6 +137,6 @@ You can shut down and uninstall the `bookkeeper` from DC/OS 
at any time using th
 
 ```shell
 $ dcos package uninstall bookkeeper
-Uninstalled package [bookkeeper] version [4.5.0]
+Uninstalled package [bookkeeper] version [4.6.0]
 Thank you for using bookkeeper.
 ```
diff --git a/site/docs/4.6.0/deployment/kubernetes.md 
b/site/docs/4.6.0/deployment/kubernetes.md
index f65172112..0f113169e 100644
--- a/site/docs/4.6.0/deployment/kubernetes.md
+++ b/site/docs/4.6.0/deployment/kubernetes.md
@@ -1,4 +1,181 @@
 ---
-title: Deploying BookKeeper on Kubernetes
+title: Deploying Apache BookKeeper on Kubernetes
+tags: [Kubernetes, Google Container Engine]
 logo: img/kubernetes-logo.png
 ---
+
+Apache BookKeeper can be easily deployed in 
[Kubernetes](https://kubernetes.io/) clusters. The managed clusters on [Google 
Container Engine](https://cloud.google.com/compute/) is the most convenient way.
+
+The deployment method shown in this guide relies on [YAML](http://yaml.org/) 
definitions for Kubernetes 
[resources](https://kubernetes.io/docs/resources-reference/v1.6/). The 
[`kubernetes`](https://github.com/apache/bookkeeper/tree/master/deploy/kubernetes)
 subdirectory holds resource definitions for:
+
+* A three-node ZooKeeper cluster
+* A BookKeeper cluster with a bookie runs on each node.
+
+## Setup on Google Container Engine
+
+To get started, get source code of 
[`kubernetes`](https://github.com/apache/bookkeeper/tree/master/deploy/kubernetes)
 from github by git clone.
+
+If you'd like to change the number of bookies,  or ZooKeeper nodes in your 
BookKeeper cluster, modify the `replicas` parameter in the `spec` section of 
the appropriate 
[`Deployment`](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
 or 
[`StatefulSet`](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)
 resource.
+
+[Google Container Engine](https://cloud.google.com/container-engine) (GKE) 
automates the creation and management of Kubernetes clusters in [Google Compute 
Engine](https://cloud.google.com/compute/) (GCE).
+
+### Prerequisites
+
+To get started, you'll need:
+
+* A Google Cloud Platform account, which you can sign up for at 
[cloud.google.com](https://cloud.google.com)
+* An existing Cloud Platform project
+* The [Google Cloud SDK](https://cloud.google.com/sdk/downloads) (in 
particular the [`gcloud`](https://cloud.google.com/sdk/gcloud/) and 
[`kubectl`]() tools).
+
+### Create a new Kubernetes cluster
+
+You can create a new GKE cluster using the [`container clusters 
create`](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create)
 command for `gcloud`. This command enables you to specify the number of nodes 
in the cluster, the machine types of those nodes, and more.
+
+As an example, we'll create a new GKE cluster for Kubernetes version 
[1.6.4](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#v164) 
in the 
[us-central1-a](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
 zone. The cluster will be named `bookkeeper-gke-cluster` and will consist of 
three VMs, each using two locally attached SSDs and running on 
[n1-standard-8](https://cloud.google.com/compute/docs/machine-types) machines. 
These SSDs will be used by Bookie instances, one for the BookKeeper journal and 
the other for storing the actual data.
+
+```bash
+$ gcloud config set compute/zone us-central1-a
+$ gcloud config set project your-project-name
+$ gcloud container clusters create bookkeeper-gke-cluster \
+  --machine-type=n1-standard-8 \
+  --num-nodes=3 \
+  --local-ssd-count=2 \
+  --enable-kubernetes-alpha
+```
+
+By default, bookies will run on all the machines that have locally attached 
SSD disks. In this example, all of those machines will have two SSDs, but you 
can add different types of machines to the cluster later. You can control which 
machines host bookie servers using 
[labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels).
+
+### Dashboard
+
+You can observe your cluster in the [Kubernetes 
Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/)
 by downloading the credentials for your Kubernetes cluster and opening up a 
proxy to the cluster:
+
+```bash
+$ gcloud container clusters get-credentials bookkeeper-gke-cluster \
+  --zone=us-central1-a \
+  --project=your-project-name
+$ kubectl proxy
+```
+
+By default, the proxy will be opened on port 8001. Now you can navigate to 
[localhost:8001/ui](http://localhost:8001/ui) in your browser to access the 
dashboard. At first your GKE cluster will be empty, but that will change as you 
begin deploying.
+
+When you create a cluster, your `kubectl` config in `~/.kube/config` (on MacOS 
and Linux) will be updated for you, so you probably won't need to change your 
configuration. Nonetheless, you can ensure that `kubectl` can interact with 
your cluster by listing the nodes in the cluster:
+
+```bash
+$ kubectl get nodes
+```
+
+If `kubectl` is working with your cluster, you can proceed to deploy ZooKeeper 
and Bookies.
+
+### ZooKeeper
+
+You *must* deploy ZooKeeper as the first component, as it is a dependency for 
the others.
+
+```bash
+$ kubectl apply -f zookeeper.yaml
+```
+
+Wait until all three ZooKeeper server pods are up and have the status 
`Running`. You can check on the status of the ZooKeeper pods at any time:
+
+```bash
+$ kubectl get pods -l component=zookeeper
+NAME      READY     STATUS             RESTARTS   AGE
+zk-0      1/1       Running            0          18m
+zk-1      1/1       Running            0          17m
+zk-2      0/1       Running            6          15m
+```
+
+This step may take several minutes, as Kubernetes needs to download the Docker 
image on the VMs.
+
+
+If you want to connect to one of the remote zookeeper server, you can 
use[zk-shell](https://github.com/rgs1/zk_shell), you need to forward a local 
port to the
+remote zookeeper server:
+
+```bash
+$ kubectl port-forward zk-0 2181:2181
+$ zk-shell localhost 2181
+```
+
+### Deploy Bookies
+
+Once ZooKeeper cluster is Running, you can then deploy the bookies. You can 
deploy the bookies either using a 
[DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/)
 or a 
[StatefulSet](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/).
+
+> NOTE: _DaemonSet_ vs _StatefulSet_
+>
+> A _DaemonSet_ ensures that all (or some) nodes run a pod of bookie instance. 
As nodes are added to the cluster, bookie pods are added automatically to them. 
As nodes are removed from the
+> cluster, those bookie pods are garbage collected. The bookies deployed in a 
DaemonSet stores data on the local disks on those nodes. So it doesn't require 
any external storage for Persistent
+> Volumes.
+>
+> A _StatefulSet_ maintains a sticky identity for the pods that it runs and 
manages. It provides stable and unique network identifiers, and stable and 
persistent storage for each pod. The pods
+> are not interchangeable, the idenifiers for each pod are maintained across 
any rescheduling.
+>
+> Which one to use? A _DaemonSet_ is the easiest way to deploy a bookkeeper 
cluster, because it doesn't require additional persistent volume provisioner 
and use local disks. BookKeeper manages
+> the data replication. It maintains the best latency property. However, it 
uses `hostIP` and `hostPort` for communications between pods. In some k8s 
platform (such as DC/OS), `hostIP` and
+> `hostPort` are not well supported. A _StatefulSet_ is only practical when 
deploying in a cloud environment or any K8S installation that has persistent 
volumes available. Also be aware, latency
+> can be potentially higher when using persistent volumes, because there is 
usually built-in replication in the persistent volumes.
+
+```bash
+# deploy bookies in a daemon set
+$ kubectl apply -f bookkeeper.yaml
+
+# deploy bookies in a stateful set
+$ kubectl apply -f bookkeeper.stateful.yaml
+```
+
+You can check on the status of the Bookie pods for these components either in 
the Kubernetes Dashboard or using `kubectl`:
+
+```bash
+$ kubectl get pods
+```
+
+While all BookKeeper pods is Running, by zk-shell you could find all available 
bookies under /ledgers/
+
+You could also run a [bookkeeper 
tutorial](https://github.com/ivankelly/bookkeeper-tutorial/) instance, which 
named as 'dice' here, in this bookkeeper cluster.
+
+```bash
+$?kubectl run -i --tty --attach dice --image=caiok/bookkeeper-tutorial --env 
ZOOKEEPER_SERVERS="zk-0.zookeeper"
+```
+
+An example output of Dice instance is like this:
+```aidl
+? $ kubectl run -i --tty --attach dice --image=caiok/bookkeeper-tutorial --env 
ZOOKEEPER_SERVERS="zk-0.zookeeper"          
+If you don't see a command prompt, try pressing enter.
+Value = 1, epoch = 5, leading
+Value = 2, epoch = 5, leading
+Value = 1, epoch = 5, leading
+Value = 4, epoch = 5, leading
+Value = 5, epoch = 5, leading
+Value = 4, epoch = 5, leading
+Value = 3, epoch = 5, leading
+Value = 5, epoch = 5, leading
+Value = 3, epoch = 5, leading
+Value = 2, epoch = 5, leading
+Value = 1, epoch = 5, leading
+Value = 4, epoch = 5, leading
+Value = 2, epoch = 5, leading
+```
+
+### Un-Deploy
+
+Delete Demo dice instance
+
+```bash
+$?kubectl delete deployment dice      
+```
+
+Delete BookKeeper
+```bash
+$ kubectl delete -f bookkeeper.yaml    
+```
+
+Delete ZooKeeper
+```bash
+$ kubectl delete -f zookeeper.yaml    
+```
+
+Delete cluster
+```bash
+$ gcloud container clusters delete bookkeeper-gke-cluster    
+```
+
+
+
diff --git a/site/docs/4.6.0/getting-started/run-locally.md 
b/site/docs/4.6.0/getting-started/run-locally.md
index ab33642c8..edbfab9fd 100644
--- a/site/docs/4.6.0/getting-started/run-locally.md
+++ b/site/docs/4.6.0/getting-started/run-locally.md
@@ -10,7 +10,7 @@ toc_disable: true
 This would start up an ensemble with 10 bookies:
 
 ```shell
-$ bookeeper-server/bin/bookeeper localbookie 10
+$ bookkeeper-server/bin/bookkeeper localbookie 10
 ```
 
 > When you start up an ensemble using `localbookie`, all bookies run in a 
 > single JVM process.
diff --git a/site/docs/4.6.0/overview/overview.md 
b/site/docs/4.6.0/overview/overview.md
index 2959872ae..3e01abbcc 100644
--- a/site/docs/4.6.0/overview/overview.md
+++ b/site/docs/4.6.0/overview/overview.md
@@ -20,21 +20,19 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-This documentation is for Apache BookKeeper&trade; version 4.6.0.
+This documentation is for Apache BookKeeper&trade; version `4.6.0`.
 
-Apache BookKeeper&trade; is a scalable, fault-tolerant, and low latency 
storage service optimized for realtime workloads.
-It offers durability, replication, and strong consistency as essentials for 
building reliable real-time applications.
+Apache BookKeeper&trade; is a scalable, fault tolerant and low latency storage 
service optimized for realtime workloads.
+It offers `durability`, `replication` and `strong consistency` as essentials 
for building reliable real-time applications.
 
-BookKeeper is well suited for scenarios like this:
+It is suitable for being used in following scenerios:
 
-Scenario | Example
-:--------|:-------
-[WAL](https://en.wikipedia.org/wiki/Write-ahead_logging) (Write-Ahead-Logging) 
| The HDFS 
[namenode](https://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html#BookKeeper_as_a_Shared_storage_EXPERIMENTAL)
-Message storage | [Apache Pulsar](https://pulsar.incubator.apache.org/)
-Offset/cursor storage | Apache Pulsar
-Object/BLOG storage | Storing snapshots to replicated state machines.
+- [WAL](https://en.wikipedia.org/wiki/Write-ahead_logging) 
(Write-Ahead-Logging), e.g. HDFS 
[namenode](https://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html#BookKeeper_as_a_Shared_storage_EXPERIMENTAL).
+- Message Store, e.g. [Apache Pulsar](https://pulsar.incubator.apache.org/).
+- Offset/Cursor Store, e.g. Apache Pulsar.
+- Object/Blob Store, e.g. storing snapshots to replicated state machines.
 
-Learn more about Apache BookKeeper and what it can do for your organization:
+Learn more about Apache BookKeeper&trade; and what it can do for your 
organization:
 
 - [Apache BookKeeper 4.6.0 Release Notes](../releaseNotes)
 - [Java API docs](../../api/javadoc)
diff --git a/site/docs/4.6.0/overview/releaseNotes.md 
b/site/docs/4.6.0/overview/releaseNotes.md
index 7df07f8c7..2df2589eb 100644
--- a/site/docs/4.6.0/overview/releaseNotes.md
+++ b/site/docs/4.6.0/overview/releaseNotes.md
@@ -1,509 +1,17 @@
 ---
-title: Apache BookKeeper 4.5.0 Release Notes
+title: Apache BookKeeper 4.6.0 Release Notes
 ---
 
-This is the fifth release of BookKeeper as an Apache Top Level Project!
+[provide a summary of this release]
 
-The 4.5.0 release incorporates hundreds of new fixes, improvements, and 
features since previous major release, 4.4.0,
-which was released over a year ago. It is a big milestone in Apache BookKeeper 
community, converging from three
-main branches (Salesforce, Twitter and Yahoo).
-
-Apache BookKeeper users are encouraged to upgrade to 4.5.0. The technical 
details of this release are summarized
+Apache BookKeeper users are encouraged to upgrade to 4.6.0. The technical 
details of this release are summarized
 below.
 
 ## Highlights
 
-The main features in 4.5.0 cover are around following areas:
-
-- Dependencies Upgrade
-- Security
-- Public API
-- Performance
-- Operations
-
-### Dependencies Upgrade
-
-Here is a list of dependencies upgraded in 4.5.0:
-
-- Moved the developement from Java 7 to Java 8.
-- Upgrade Protobuf to `2.6`.
-- Upgrade ZooKeeper from `3.4` to `3.5`.
-- Upgrade Netty to `4.1`.
-- Upgrade Guava to `20.0`.
-- Upgrade SLF4J to `1.7.25`.
-- Upgrade Codahale to `3.1.0`.
-
-### Security
-
-Prior to this release, Apache BookKeeper only supports simple `DIGEST-MD5` 
type authentication.
-
-With this release of Apache BookKeeper, a number of feature are introduced 
that can be used, together of separately,
-to secure a BookKeeper cluster.
-
-The following security features are currently supported.
-
-- Authentication of connections to bookies from clients, using either `TLS` or 
`SASL (Kerberos).
-- Authentication of connections from clients, bookies, autorecovery daemons to 
`ZooKeeper`, when using zookeeper
-    based ledger managers.
-- Encryption of data transferred between bookies and clients, between bookies 
and autorecovery daemons using `TLS`.
-
-It's worth noting that those security features are optional - non-secured 
clusters are supported, as well as a mix
-of authenticated, unauthenticated, encrypted and non-encrypted clients.
-
-For more details, have a look at [BookKeeper 
Security](../../security/overview).
-
-### Public API
-
-There are multiple new client features introduced in 4.5.0.
-
-#### LedgerHandleAdv
-
-The [Ledger API] is the low level API provides by BookKeeper for interacting 
with `ledgers` in a bookkeeper cluster.
-It is simple but not flexible on ledger id or entry id generation. Apache 
BookKeeper introduces `LedgerHandleAdv`
-as an extension of existing `LedgerHandle` for advanced usage. The new 
`LedgerHandleAdv` allows applications providing
-its own `ledger-id` and assigning `entry-id` on adding entries.
-
-See [Ledger Advanced API](../../api/ledger-adv-api) for more details.
-
-#### Long Poll
-
-`Long Poll` is a main feature that [DistributedLog](https://distributedlog.io) 
uses to achieve low-latency tailing.
-This big feature has been merged back in 4.5.0 and available to BookKeeper 
users.
-
-This feature includes two main changes, one is `LastAddConfirmed` piggyback, 
while the other one is a new `long poll` read API.
-
-The first change piggyback the latest `LastAddConfirm` along with the read 
response, so your `LastAddConfirmed` will be automatically advanced
-when your read traffic continues. It significantly reduces the traffic to 
explicitly polling `LastAddConfirmed` and hence reduces the end-to-end latency.
-
-The second change provides a new `long poll` read API, allowing tailing-reads 
without polling `LastAddConfirmed` everytime after readers exhaust known 
entries.
-Although `long poll` API brings great latency improvements on tailing reads, 
it is still a very low-level primitive.
-It is still recommended to use high level API (e.g. [DistributedLog 
API](../../api/distributedlog-api)) for tailing and streaming use cases.
-
-See [Streaming 
Reads](https://distributedlog.incubator.apache.org/docs/latest/user_guide/design/main.html#streaming-reads)
 for more details.
-
-#### Explicit LAC
-
-Prior to 4.5.0, the `LAC` is only advanced when subsequent entries are added. 
If there is no subsequent entries added,
-the last entry written will not be visible to readers until the ledger is 
closed. High-level client (e.g. DistributedLog) or applications
-has to work around this by writing some sort of `control records` to advance 
`LAC`.
-
-In 4.5.0, a new `explicit lac` feature is introduced to periodically advance 
`LAC` if there are not subsequent entries added. This feature
-can be enabled by setting `explicitLacInterval` to a positive value.
-
-### Performance
-
-There are a lot for performance related bug fixes and improvements in 4.5.0. 
These changes includes:
-
-- Upgraded netty from 3.x to 4.x to leverage buffer pooling and reduce memory 
copies.
-- Moved developement from Java 7 to Java 8 to take advantage of Java 8 
features.
-- A lot of improvements around scheduling and threading on `bookies`.
-- Delay ensemble change to improve tail latency.
-- Parallel ledger recovery to improve the recovery speed.
-- ...
-
-We outlined following four changes as below. For a complete list of 
performance improvements, please checkout the `full list of changes` at the end.
-
-#### Netty 4 Upgrade
-
-The major performance improvement introduced in 4.5.0, is upgrading netty from 
3.x to [4.x](http://netty.io/wiki/new-and-noteworthy-in-4.0.html).
-
-For more details, please read [upgrade guide](../../admin/upgrade) about the 
netty related tips when upgrading bookkeeper from 4.4.0 to 4.5.0.
-
-#### Delay Ensemble Change
-
-`Ensemble Change` is a feature that Apache BookKeeper uses to achieve high 
availability. However it is an expensive metadata operation.
-Especially when Apache BookKeeper is deployed in a multiple data-centers 
environment, losing a data center will cause churn of metadata
-operations due to ensemble changes. `Delay Ensemble Change` is introduced in 
4.5.0 to overcome this problem. Enabling this feature means
-an `Ensemble Change` will only occur when clients can't receive enough valid 
responses to satisfy `ack-quorum` constraint. This feature
-improves the tail latency.
-
-To enable this feature, please set `delayEnsembleChange` to `true` on your 
clients.
-
-#### Parallel Ledger Recovery
-
-BookKeeper clients recovers entries one-by-one during ledger recovery. If a 
ledger has very large volumn of traffic, it will have
-large number of entries to recover when client failures occur. BookKeeper 
introduces `parallel ledger recovery` in 4.5.0 to allow
-batch recovery to improve ledger recovery speed.
-
-To enable this feature, please set `enableParallelRecoveryRead` to `true` on 
your clients. You can also set `recoveryReadBatchSize`
-to control the batch size of recovery read.
-
-#### Multiple Journals
-
-Prior to 4.5.0, bookies are only allowed to configure one journal device. If 
you want to have high write bandwidth, you can raid multiple
-disks into one device and mount that device for jouranl directory. However 
because there is only one journal thread, this approach doesn't
-actually improve the write bandwidth.
-
-BookKeeper introduces multiple journal directories support in 4.5.0. Users can 
configure multiple devices for journal directories.
-
-To enable this feature, please use `journalDirectories` rather than 
`journalDirectory`.
-
-### Operations
-
-#### LongHierarchicalLedgerManager
-
-Apache BookKeeper supports pluggable metadata store. By default, it uses 
Apache ZooKeeper as its metadata store. Among the zookeeper-based
-ledger manager implementations, `HierarchicalLedgerManager` is the most 
popular and widely adopted ledger manager. However it has a major
-limitation, which it assumes `ledger-id` is a 32-bits integer. It limits the 
number of ledgers to `2^32`.
-
-`LongHierarchicalLedgerManager` is introduced to overcome this limitation.
-
-See [Ledger Manager](../../getting-started/concepts/#ledger-manager) for more 
details.
-
-#### Weight-based placement policy
-
-`Rack-Aware` and `Region-Aware` placement polices are the two available 
placement policies in BookKeeper client. It places ensembles based
-on users' configured network topology. However they both assume that all nodes 
are equal. `weight-based` placement is introduced in 4.5.0 to
-improve the existing placement polices. `weight-based` placement was not built 
as separated polices. It is built in the existing placement policies.
-If you are using `Rack-Aware` or `Region-Aware`, you can simply enable 
`weight-based` placement by setting `diskWeightBasedPlacementEnabled` to `true`.
-
-#### Customized Ledger Metadata
-
-A `Map<String, byte[]>` is introduced in ledger metadata in 4.5.0. Clients now 
are allowed to pass in a key/value map when creating ledgers.
-This customized ledger metadata can be later on used by user defined placement 
policy. This extends the flexibility of bookkeeper API.
-
-#### Add Prometheus stats provider
-
-A new [Prometheus](https://prometheus.io/) [stats 
provider](https://github.com/apache/bookkeeper/tree/master/bookkeeper-stats-providers/prometheus-metrics-provider)
-is introduce in 4.5.0. It simplies the metric collection when running 
bookkeeper on [kubernetes](https://kubernetes.io/).
-
-#### Add more tools in BookieShell
-
-`BookieShell` is the tool provided by Apache BooKeeper to operate clusters. 
There are multiple importants tools introduced in 4.5.0, for example, 
`decommissionbookie`,
-`expandstorage`, `lostbookierecoverydelay`, `triggeraudit`.
-
-For the complete list of commands in `BookieShell`, please read [BookKeeper 
CLI tool reference](../../reference/cli).
-
-## Full list of changes
-
-### JIRA
+[List the highlights]
 
-#### Sub-task
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-552'>BOOKKEEPER-552</a>] 
-         64 Bits Ledger ID Generation
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-553'>BOOKKEEPER-553</a>] 
-         New LedgerManager for 64 Bits Ledger ID Management in ZooKeeper
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-588'>BOOKKEEPER-588</a>] 
-         SSL support
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-873'>BOOKKEEPER-873</a>] 
-         Enhance CreatedLedger API to accept ledgerId as input
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-949'>BOOKKEEPER-949</a>] 
-         Allow entryLog creation even when bookie is in RO mode for compaction
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-965'>BOOKKEEPER-965</a>] 
-         Long Poll: Changes to the Write Path
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-997'>BOOKKEEPER-997</a>] 
-         Wire protocol change for supporting long poll
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1017'>BOOKKEEPER-1017</a>]
 -         Create documentation for ZooKeeper ACLs
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1086'>BOOKKEEPER-1086</a>]
 -         Ledger Recovery - Refactor PendingReadOp
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1087'>BOOKKEEPER-1087</a>]
 -         Ledger Recovery - Add a parallel reading request in PendingReadOp
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1088'>BOOKKEEPER-1088</a>]
 -         Ledger Recovery - Add a ReadEntryListener to callback on individual 
request
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1089'>BOOKKEEPER-1089</a>]
 -         Ledger Recovery - allow batch reads in ledger recovery
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1092'>BOOKKEEPER-1092</a>]
 -         Ledger Recovery - Add Test Case for Parallel Ledger Recovery
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1093'>BOOKKEEPER-1093</a>]
 -         Piggyback LAC on ReadResponse
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1094'>BOOKKEEPER-1094</a>]
 -         Long Poll - Server and Client Side Changes
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1095'>BOOKKEEPER-1095</a>]
 -         Long Poll - Client side changes
-</li>
-</ul>
-                            
-#### Bug
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-852'>BOOKKEEPER-852</a>] 
-         Release LedgerDescriptor and master-key objects when not used anymore
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-903'>BOOKKEEPER-903</a>] 
-         MetaFormat BookieShell Command is not deleting UnderReplicatedLedgers 
list from the ZooKeeper
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-907'>BOOKKEEPER-907</a>] 
-         for ReadLedgerEntriesCmd, EntryFormatter should be configurable and 
HexDumpEntryFormatter should be one of them
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-908'>BOOKKEEPER-908</a>] 
-         Case to handle BKLedgerExistException
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-924'>BOOKKEEPER-924</a>] 
-         addEntry() is susceptible to spurious wakeups
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-927'>BOOKKEEPER-927</a>] 
-         Extend BOOKKEEPER-886 to LedgerHandleAdv too (BOOKKEEPER-886: Allow 
to disable ledgers operation throttling)
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-933'>BOOKKEEPER-933</a>] 
-         ClientConfiguration always inherits System properties
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-938'>BOOKKEEPER-938</a>] 
-         LedgerOpenOp should use digestType from metadata
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-939'>BOOKKEEPER-939</a>] 
-         Fix typo in bk-merge-pr.py
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-940'>BOOKKEEPER-940</a>] 
-         Fix findbugs warnings after bumping to java 8
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-952'>BOOKKEEPER-952</a>] 
-         Fix RegionAwarePlacementPolicy
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-955'>BOOKKEEPER-955</a>] 
-         in BookKeeperAdmin listLedgers method currentRange variable is not 
getting updated to next iterator when it has run out of elements
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-956'>BOOKKEEPER-956</a>] 
-         HierarchicalLedgerManager doesn&#39;t work for ledgerid of length 9 
and 10 because of order issue in HierarchicalLedgerRangeIterator
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-958'>BOOKKEEPER-958</a>] 
-         ZeroBuffer readOnlyBuffer returns ByteBuffer with 0 remaining bytes 
for length &gt; 64k
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-959'>BOOKKEEPER-959</a>] 
-         ClientAuthProvider and BookieAuthProvider Public API used Protobuf 
Shaded classes
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-976'>BOOKKEEPER-976</a>] 
-         Fix license headers with &quot;Copyright 2016 The Apache Software 
Foundation&quot;
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-980'>BOOKKEEPER-980</a>] 
-         BookKeeper Tools doesn&#39;t process the argument correctly
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-981'>BOOKKEEPER-981</a>] 
-         NullPointerException in RackawareEnsemblePlacementPolicy while 
running in Docker Container
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-984'>BOOKKEEPER-984</a>] 
-          BookieClientTest.testWriteGaps tested
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-986'>BOOKKEEPER-986</a>] 
-         Handle Memtable flush failure
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-987'>BOOKKEEPER-987</a>] 
-         BookKeeper build is broken due to the shade plugin for commit 
ecbb053e6e
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-988'>BOOKKEEPER-988</a>] 
-         Missing license headers
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-989'>BOOKKEEPER-989</a>] 
-         Enable travis CI for bookkeeper git
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-999'>BOOKKEEPER-999</a>] 
-         BookKeeper client can leak threads
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1013'>BOOKKEEPER-1013</a>]
 -         Fix findbugs errors on latest master
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1018'>BOOKKEEPER-1018</a>]
 -         Allow client to select older V2 protocol (no protobuf)
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1020'>BOOKKEEPER-1020</a>]
 -         Fix Explicit LAC tests on master
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1021'>BOOKKEEPER-1021</a>]
 -         Improve the merge script to handle github reviews api
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1031'>BOOKKEEPER-1031</a>]
 -         ReplicationWorker.rereplicate fails to call close() on 
ReadOnlyLedgerHandle
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1044'>BOOKKEEPER-1044</a>]
 -         Entrylogger is not readding rolled logs back to the 
logChannelsToFlush list when exception happens while trying to flush rolled logs
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1047'>BOOKKEEPER-1047</a>]
 -         Add missing error code in ZK setData return path
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1058'>BOOKKEEPER-1058</a>]
 -         Ignore already deleted ledger on replication audit
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1061'>BOOKKEEPER-1061</a>]
 -         BookieWatcher should not do ZK blocking operations from ZK async 
callback thread
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1065'>BOOKKEEPER-1065</a>]
 -         OrderedSafeExecutor should only have 1 thread per bucket
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1071'>BOOKKEEPER-1071</a>]
 -         BookieRecoveryTest is failing due to a Netty4 
IllegalReferenceCountException
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1072'>BOOKKEEPER-1072</a>]
 -         CompactionTest is flaky when disks are almost full
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1073'>BOOKKEEPER-1073</a>]
 -         Several stats provider related changes.
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1074'>BOOKKEEPER-1074</a>]
 -         Remove JMX Bean 
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1075'>BOOKKEEPER-1075</a>]
 -         BK LedgerMetadata: more memory-efficient parsing of configs
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1076'>BOOKKEEPER-1076</a>]
 -         BookieShell should be able to read the &#39;FENCE&#39; entry in the 
log
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1077'>BOOKKEEPER-1077</a>]
 -         BookKeeper: Local Bookie Journal and ledger paths
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1079'>BOOKKEEPER-1079</a>]
 -         shell lastMark throws NPE
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1098'>BOOKKEEPER-1098</a>]
 -         ZkUnderreplicationManager can build up an unbounded number of 
watchers
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1101'>BOOKKEEPER-1101</a>]
 -         BookKeeper website menus not working under https
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1102'>BOOKKEEPER-1102</a>]
 -         
org.apache.bookkeeper.client.BookKeeperDiskSpaceWeightedLedgerPlacementTest.testDiskSpaceWeightedBookieSelectionWithBookiesBeingAdded
 is unreliable
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1103'>BOOKKEEPER-1103</a>]
 -         LedgerMetadataCreateTest bug in ledger id generation causes 
intermittent hang
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1104'>BOOKKEEPER-1104</a>]
 -         
BookieInitializationTest.testWithDiskFullAndAbilityToCreateNewIndexFile 
testcase is unreliable
-</li>
-</ul>
-                            
-#### Improvement
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-612'>BOOKKEEPER-612</a>] 
-         RegionAwarePlacement Policy
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-748'>BOOKKEEPER-748</a>] 
-         Move fence requests out of read threads
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-757'>BOOKKEEPER-757</a>] 
-         Ledger Recovery Improvement
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-759'>BOOKKEEPER-759</a>] 
-         bookkeeper: delay ensemble change if it doesn&#39;t break ack quorum 
requirement
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-772'>BOOKKEEPER-772</a>] 
-         Reorder read sequnce 
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-874'>BOOKKEEPER-874</a>] 
-         Explict LAC from Writer to Bookies
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-881'>BOOKKEEPER-881</a>] 
-         upgrade surefire plugin to 2.19
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-887'>BOOKKEEPER-887</a>] 
-         Allow to use multiple bookie journals
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-922'>BOOKKEEPER-922</a>] 
-         Create a generic (K,V) map to store ledger metadata
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-935'>BOOKKEEPER-935</a>] 
-         Publish sources and javadocs to Maven Central
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-937'>BOOKKEEPER-937</a>] 
-         Upgrade protobuf to 2.6
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-944'>BOOKKEEPER-944</a>] 
-         Multiple issues and improvements to BK Compaction.
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-945'>BOOKKEEPER-945</a>] 
-         Add counters to track the activity of auditor and replication workers
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-946'>BOOKKEEPER-946</a>] 
-         Provide an option to delay auto recovery of lost bookies
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-961'>BOOKKEEPER-961</a>] 
-         Assing read/write request for same ledger to a single thread
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-962'>BOOKKEEPER-962</a>] 
-         Add more journal timing stats
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-963'>BOOKKEEPER-963</a>] 
-         Allow to use multiple journals in bookie
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-964'>BOOKKEEPER-964</a>] 
-         Add concurrent maps and sets for primitive types
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-966'>BOOKKEEPER-966</a>] 
-         change the bookieServer cmdline to make conf-file and option co-exist
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-968'>BOOKKEEPER-968</a>] 
-         Entry log flushes happen on log rotation and cause long spikes in IO 
utilization
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-970'>BOOKKEEPER-970</a>] 
-         Bump zookeeper version to 3.5
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-971'>BOOKKEEPER-971</a>] 
-         update bk codahale stats provider version
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-998'>BOOKKEEPER-998</a>] 
-         Increased the max entry size to 5MB
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1001'>BOOKKEEPER-1001</a>]
 -         Make LocalBookiesRegistry.isLocalBookie() public
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1002'>BOOKKEEPER-1002</a>]
 -         BookieRecoveryTest can run out of file descriptors
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1003'>BOOKKEEPER-1003</a>]
 -         Fix TestDiskChecker so it can be used on /dev/shm
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1004'>BOOKKEEPER-1004</a>]
 -         Allow bookie garbage collection to be triggered manually from tests
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1007'>BOOKKEEPER-1007</a>]
 -         Explicit LAC: make the interval configurable in milliseconds instead 
of seconds
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1008'>BOOKKEEPER-1008</a>]
 -         Move to netty4
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1010'>BOOKKEEPER-1010</a>]
 -         Bump up Guava version to 20.0
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1022'>BOOKKEEPER-1022</a>]
 -         Make BookKeeperAdmin implement AutoCloseable
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1039'>BOOKKEEPER-1039</a>]
 -         bk-merge-pr.py ask to run findbugs and rat before merge
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1046'>BOOKKEEPER-1046</a>]
 -         Avoid long to Long conversion in OrderedSafeExecutor task submit
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1048'>BOOKKEEPER-1048</a>]
 -         Use ByteBuf in LedgerStorageInterface
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1050'>BOOKKEEPER-1050</a>]
 -         Cache journalFormatVersionToWrite when starting Journal
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1051'>BOOKKEEPER-1051</a>]
 -         Fast shutdown for GarbageCollectorThread
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1052'>BOOKKEEPER-1052</a>]
 -         Print autorecovery enabled or not in bookie shell
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1053'>BOOKKEEPER-1053</a>]
 -         Upgrade RAT maven version to 0.12 and ignore Eclipse project files
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1055'>BOOKKEEPER-1055</a>]
 -         Optimize handling of masterKey in case it is empty
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1056'>BOOKKEEPER-1056</a>]
 -         Removed PacketHeader serialization/deserialization allocation
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1063'>BOOKKEEPER-1063</a>]
 -         Use executure.execute() instead of submit() to avoid creation of 
unused FutureTask
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1066'>BOOKKEEPER-1066</a>]
 -         Introduce GrowableArrayBlockingQueue
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1068'>BOOKKEEPER-1068</a>]
 -         Expose ByteBuf in LedgerEntry to avoid data copy
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1069'>BOOKKEEPER-1069</a>]
 -         If client uses V2 proto, set the connection to always decode V2 
messages
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1083'>BOOKKEEPER-1083</a>]
 -         Improvements on OrderedSafeExecutor
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1084'>BOOKKEEPER-1084</a>]
 -         Make variables finale if necessary
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1085'>BOOKKEEPER-1085</a>]
 -         Introduce the AlertStatsLogger
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1090'>BOOKKEEPER-1090</a>]
 -         Use LOG.isDebugEnabled() to avoid unexpected allocations
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1096'>BOOKKEEPER-1096</a>]
 -         When ledger is deleted, along with leaf node all the eligible branch 
nodes also should be deleted in ZooKeeper.
-</li>
-</ul>
-                
-#### New Feature
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-390'>BOOKKEEPER-390</a>] 
-         Provide support for ZooKeeper authentication
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-391'>BOOKKEEPER-391</a>] 
-         Support Kerberos authentication of bookkeeper
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-575'>BOOKKEEPER-575</a>] 
-         Bookie SSL support
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-670'>BOOKKEEPER-670</a>] 
-         Longpoll Read &amp; Piggyback Support
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-912'>BOOKKEEPER-912</a>] 
-         Allow EnsemblePlacementPolicy to choose bookies using ledger custom 
data (multitenancy support)
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-928'>BOOKKEEPER-928</a>] 
-         Add custom client supplied metadata field to LedgerMetadata
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-930'>BOOKKEEPER-930</a>] 
-         Option to disable Bookie networking
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-941'>BOOKKEEPER-941</a>] 
-         Introduce Feature Switches For controlling client and server behavior
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-948'>BOOKKEEPER-948</a>] 
-         Provide an option to add more ledger/index directories to a bookie
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-950'>BOOKKEEPER-950</a>] 
-         Ledger placement policy to accomodate different storage capacity of 
bookies
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-969'>BOOKKEEPER-969</a>] 
-         Security Support
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-983'>BOOKKEEPER-983</a>] 
-         BookieShell Command for LedgerDelete
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-991'>BOOKKEEPER-991</a>] 
-         bk shell - Get a list of all on disk files
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-992'>BOOKKEEPER-992</a>] 
-         ReadLog Command Enhancement
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1019'>BOOKKEEPER-1019</a>]
 -         Support for reading entries after LAC (causal consistency driven by 
out-of-band communications)
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1034'>BOOKKEEPER-1034</a>]
 -         When all disks are full, start Bookie in RO mode if RO mode is 
enabled 
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1067'>BOOKKEEPER-1067</a>]
 -         Add Prometheus stats provider
-</li>
-</ul>
-                                            
-#### Story
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-932'>BOOKKEEPER-932</a>] 
-         Move to JDK 8
-</li>
-</ul>
-                
-#### Task
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-931'>BOOKKEEPER-931</a>] 
-         Update the committers list on website
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-996'>BOOKKEEPER-996</a>] 
-         Apache Rat Check Failures
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1012'>BOOKKEEPER-1012</a>]
 -         Shade and relocate Guava
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1027'>BOOKKEEPER-1027</a>]
 -         Cleanup main README and main website page
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1038'>BOOKKEEPER-1038</a>]
 -         Fix findbugs warnings and upgrade to 3.0.4
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1043'>BOOKKEEPER-1043</a>]
 -         Upgrade Apache Parent Pom Reference to latest version
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1054'>BOOKKEEPER-1054</a>]
 -         Add gitignore file
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1059'>BOOKKEEPER-1059</a>]
 -         Upgrade to SLF4J-1.7.25
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1060'>BOOKKEEPER-1060</a>]
 -         Add utility to use SafeRunnable from Java8 Lambda
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1070'>BOOKKEEPER-1070</a>]
 -         bk-merge-pr.py use apache-rat:check goal instead of rat:rat
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1091'>BOOKKEEPER-1091</a>]
 -         Remove Hedwig from BookKeeper website page
-</li>
-</ul>
-            
-#### Test
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-967'>BOOKKEEPER-967</a>] 
-         Create new testsuite for testing RackAwareEnsemblePlacementPolicy 
using ScriptBasedMapping.
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1045'>BOOKKEEPER-1045</a>]
 -         Execute tests in different JVM processes
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1064'>BOOKKEEPER-1064</a>]
 -         ConcurrentModificationException in AuditorLedgerCheckerTest
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1078'>BOOKKEEPER-1078</a>]
 -         Local BookKeeper enhancements for testability
-</li>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-1097'>BOOKKEEPER-1097</a>]
 -         GC test when no WritableDirs
-</li>
-</ul>
-        
-#### Wish
-<ul>
-<li>[<a 
href='https://issues.apache.org/jira/browse/BOOKKEEPER-943'>BOOKKEEPER-943</a>] 
-         Reduce log level of AbstractZkLedgerManager for register/unregister 
ReadOnlyLedgerHandle
-</li>
-</ul>
+## Details
 
-### Github
+[list to issues list]
 
-- 
[https://github.com/apache/bookkeeper/milestone/1](https://github.com/apache/bookkeeper/milestone/1)
diff --git a/site/docs/4.6.0/overview/releaseNotesTemplate.md 
b/site/docs/4.6.0/overview/releaseNotesTemplate.md
index c7845ae51..2df2589eb 100644
--- a/site/docs/4.6.0/overview/releaseNotesTemplate.md
+++ b/site/docs/4.6.0/overview/releaseNotesTemplate.md
@@ -1,10 +1,10 @@
 ---
-title: Apache BookKeeper 4.5.0 Release Notes
+title: Apache BookKeeper 4.6.0 Release Notes
 ---
 
 [provide a summary of this release]
 
-Apache BookKeeper users are encouraged to upgrade to 4.5.0. The technical 
details of this release are summarized
+Apache BookKeeper users are encouraged to upgrade to 4.6.0. The technical 
details of this release are summarized
 below.
 
 ## Highlights
diff --git a/site/docs/4.6.0/security/overview.md 
b/site/docs/4.6.0/security/overview.md
index 62da8edae..b825776eb 100644
--- a/site/docs/4.6.0/security/overview.md
+++ b/site/docs/4.6.0/security/overview.md
@@ -12,7 +12,7 @@ The following security measures are currently supported:
 
 It?s worth noting that security is optional - non-secured clusters are 
supported, as well as a mix of authenticated, unauthenticated, encrypted and 
non-encrypted clients.
 
-NOTE: currently `authorization` is not yet available in `4.5.0`. The Apache 
BookKeeper community is looking for adding this feature in subsequent releases.
+NOTE: authorization is not yet available in 4.5.0. The Apache BookKeeper 
community is looking to add this feature in subsequent releases.
 
 ## Next Steps
 
diff --git a/site/docs/latest/admin/http.md b/site/docs/latest/admin/http.md
index 8558364d6..0097adc62 100644
--- a/site/docs/latest/admin/http.md
+++ b/site/docs/latest/admin/http.md
@@ -62,7 +62,7 @@ Currently all the HTTP endpoints could be divided into these 
4 components:
 
 ## Ledger
 
-### Endpoint: /api/v1/ledger/delete/?ledger_id=<ledger_id>
+### Endpoint: /api/v1/ledger/delete/?ledger_id=&lt;ledger_id&gt;
 1. Method: DELETE
     * Description: Delete a ledger.
     * Parameters: 
@@ -78,7 +78,7 @@ Currently all the HTTP endpoints could be divided into these 
4 components:
         |403 | Permission denied |
         |404 | Not found |
 
-### Endpoint: /api/v1/ledger/list/?print_metadata=<metadata>
+### Endpoint: /api/v1/ledger/list/?print_metadata=&lt;metadata&gt;
 1. Method: GET
     * Description: List all the ledgers.
     * Parameters: 
@@ -103,7 +103,7 @@ Currently all the HTTP endpoints could be divided into 
these 4 components:
         }
         ```
 
-### Endpoint: /api/v1/ledger/metadata/?ledger_id=<ledger_id>
+### Endpoint: /api/v1/ledger/metadata/?ledger_id=&lt;ledger_id&gt;
 1. Method: GET
     * Description: Get the metadata of a ledger.
     * Parameters: 
@@ -126,7 +126,7 @@ Currently all the HTTP endpoints could be divided into 
these 4 components:
         }
         ```    
 
-### Endpoint: 
/api/v1/ledger/read/?ledger_id=<ledger_id>&start_entry_id=<start_entry_id>&end_entry_id=<end_entry_id>
+### Endpoint: 
/api/v1/ledger/read/?ledger_id=&lt;ledger_id&gt;&start_entry_id=&lt;start_entry_id&gt;&end_entry_id=&lt;end_entry_id&gt;
 1. Method: GET
     * Description: Read a range of entries from ledger.
     * Parameters: 
@@ -155,7 +155,7 @@ Currently all the HTTP endpoints could be divided into 
these 4 components:
 
 ## Bookie
 
-### Endpoint: 
/api/v1/bookie/list_bookies/?type=<type>&print_hostnames=<hostnames>
+### Endpoint: 
/api/v1/bookie/list_bookies/?type=&lt;type&gt;&print_hostnames=&lt;hostnames&gt;
 1. Method: GET
     * Description:  Get all the available bookies.
     * Parameters: 
@@ -222,7 +222,7 @@ Currently all the HTTP endpoints could be divided into 
these 4 components:
         }
         ```   
 
-### Endpoint: /api/v1/bookie/list_disk_file/?file_type=<type>
+### Endpoint: /api/v1/bookie/list_disk_file/?file_type=&lt;type&gt;
 1. Method: GET
     * Description:  Get all the files on disk of current bookie.
     * Parameters: 
@@ -286,7 +286,7 @@ Currently all the HTTP endpoints could be divided into 
these 4 components:
         |403 | Permission denied |
         |404 | Not found |
 
-### Endpoint: 
/api/v1/autorecovery/list_under_replicated_ledger/?missingreplica=<bookie_address>&excludingmissingreplica=<bookie_address>
+### Endpoint: 
/api/v1/autorecovery/list_under_replicated_ledger/?missingreplica=&lt;bookie_address&gt;&excludingmissingreplica=&lt;bookie_address&gt;
 1. Method: GET
     * Description:  Get all under replicated ledgers.
     * Parameters: 
diff --git a/site/docs/latest/overview/overview.md 
b/site/docs/latest/overview/overview.md
index 8e89adb58..7c8f54558 100644
--- a/site/docs/latest/overview/overview.md
+++ b/site/docs/latest/overview/overview.md
@@ -1,5 +1,5 @@
 ---
-title: Apache BookKeeper&trade; 4.6.0-SNAPSHOT Documentation 
+title: Apache BookKeeper&trade; 4.7.0-SNAPSHOT
 ---
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
diff --git a/site/docs/latest/overview/releaseNotes.md 
b/site/docs/latest/overview/releaseNotes.md
index 668c5bc9a..45f928913 100644
--- a/site/docs/latest/overview/releaseNotes.md
+++ b/site/docs/latest/overview/releaseNotes.md
@@ -1,5 +1,5 @@
 ---
-title: Apache BookKeeper 4.6.0-SNAPSHOT Release Notes
+title: Apache BookKeeper 4.7.0-SNAPSHOT Release Notes
 ---
 
 Apache BookKeeper {{ site.latest_version }} is still under developement.
diff --git a/site/docs/latest/overview/releaseNotesTemplate.md 
b/site/docs/latest/overview/releaseNotesTemplate.md
index 7fcc5dc33..74004b7bf 100644
--- a/site/docs/latest/overview/releaseNotesTemplate.md
+++ b/site/docs/latest/overview/releaseNotesTemplate.md
@@ -1,5 +1,5 @@
 ---
-title: Apache BookKeeper 4.6.0-SNAPSHOT Release Notes
+title: Apache BookKeeper 4.7.0-SNAPSHOT Release Notes
 ---
 
 [provide a summary of this release]
diff --git a/site/releases.md b/site/releases.md
index 7c00a6932..fab3296f5 100644
--- a/site/releases.md
+++ b/site/releases.md
@@ -27,6 +27,10 @@ Client Guide | API docs
 
 ## News
 
+### [date] Release 4.6.0 available
+
+[INSERT SUMMARY]
+
 ### XX November, 2017: Release 4.5.1 available
 
 This is the sixth release of BookKeeper as an Apache Top Level Project!


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to