Revert "[CI] Add markdown links check (#11)"

This reverts commit d75a68afb4a296f3bd987ee06d2c47b629b7b30e.
diff --git a/.github/workflows/ci-pull-request-markdown-links.yaml b/.github/workflows/ci-pull-request-markdown-links.yaml
deleted file mode 100644
index 4e2fae9..0000000
--- a/.github/workflows/ci-pull-request-markdown-links.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: Check Markdown links
-
-on:
-  pull_request:
-    types: [ synchronize, opened, reopened ]
-
-jobs:
-  markdown-link-check:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - uses: gaurav-nelson/github-action-markdown-link-check@v1
diff --git a/_docs/en/build/compile-by-docker.md b/_docs/en/build/compile-by-docker.md
index b2a2541..5f81f83 100755
--- a/_docs/en/build/compile-by-docker.md
+++ b/_docs/en/build/compile-by-docker.md
@@ -18,7 +18,7 @@
 
 ## Compilation
 
-Please refer to [Downloads](/_docs/en/downloads.md) to fetch the sources under a directory (`/your/local/apache-pegasus-source`). Then run the following command:
+Please refer to [Downloads](/docs/downloads) to fetch the sources under a directory (`/your/local/apache-pegasus-source`). Then run the following command:
 
 ```sh
 docker run -v /your/local/apache-pegasus-source:/root/pegasus \
@@ -54,4 +54,4 @@
            /bin/bash -c "./run.sh pack_tools"
 ```
 
-If this is your first time compiling Pegasus, it's recommended to try [onebox](/_overview/en/onebox.md).
+If this is your first time compiling Pegasus, it's recommended to try [onebox](/overview/onebox).
diff --git a/_docs/en/build/compile-from-source.md b/_docs/en/build/compile-from-source.md
index ef19c07..5dc5415 100755
--- a/_docs/en/build/compile-from-source.md
+++ b/_docs/en/build/compile-from-source.md
@@ -78,7 +78,7 @@
 
 ## Compilation
 
-Please refer to [Downloads](/_docs/en/downloads.md) to fetch the sources。
+Please refer to [Downloads](/docs/downloads) to fetch the sources。
 
 ```bash
 ./run.sh build -c
@@ -106,4 +106,4 @@
 ./run.sh pack_tools
 ```
 
-If this is your first time compiling Pegasus, it's recommended to try [onebox](/_overview/en/onebox.md).
+If this is your first time compiling Pegasus, it's recommended to try [onebox](/overview/onebox).
diff --git a/_docs/en/downloads.md b/_docs/en/downloads.md
index 5622b63..786f0b3 100644
--- a/_docs/en/downloads.md
+++ b/_docs/en/downloads.md
@@ -24,9 +24,9 @@
 [2.3.0-sha]: https://downloads.apache.org/incubator/pegasus/2.3.0/apache-pegasus-2.3.0-incubating-src.zip.sha512
 [2.3.0-rn]: https://cwiki.apache.org/confluence/display/PEGASUS/Apache+Pegasus+2.3.0+Release+Notes
 
-| Name                 | Package             | Signature        | Checksum            | Release Notes          |
-|----------------------|---------------------|------------------|---------------------|------------------------|
-| Apache Pegasus 2.1.0 | [Source][2.1.0-src] | [asc][2.1.0-asc] | [sha512][2.1.0-sha] | [2020-11-30][2.1.0-rn] |
-| Apache Pegasus 2.2.0 | [Source][2.2.0-src] | [asc][2.2.0-asc] | [sha512][2.2.0-sha] | [2021-06-27][2.2.0-rn] |
-| Apache Pegasus 2.3.0 | [Source][2.3.0-src] | [asc][2.3.0-asc] | [sha512][2.3.0-sha] | [2021-11-26][2.3.0-rn] |
+Name | Package | Signature | Checksum | Release Notes |
+---|---|---|---|---|
+Apache Pegasus 2.1.0 | [Source][2.1.0-src] | [asc][2.1.0-asc] | [sha512][2.1.0-sha] | [2020-11-30][2.1.0-rn]
+Apache Pegasus 2.2.0 | [Source][2.2.0-src] | [asc][2.2.0-asc] | [sha512][2.2.0-sha] | [2021-06-27][2.2.0-rn]
+Apache Pegasus 2.3.0 | [Source][2.3.0-src] | [asc][2.3.0-asc] | [sha512][2.3.0-sha] | [2021-11-26][2.3.0-rn]
 
diff --git a/_docs/zh/1.10.0/compile-from-source.md b/_docs/zh/1.10.0/compile-from-source.md
index bb84320..713430b 100755
--- a/_docs/zh/1.10.0/compile-from-source.md
+++ b/_docs/zh/1.10.0/compile-from-source.md
@@ -20,7 +20,7 @@
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md)获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/1.11.3/compile-from-source.md b/_docs/zh/1.11.3/compile-from-source.md
index 058db34..31960b6 100755
--- a/_docs/zh/1.11.3/compile-from-source.md
+++ b/_docs/zh/1.11.3/compile-from-source.md
@@ -12,15 +12,15 @@
 
 ## Ubuntu环境配置
 
-你可以参考 [pegasus-build-dev/ubuntu16.04](https://github.com/pegasus-kv/pegasus-docker/blob/{{page.version}}/pegasus-build-env/ubuntu16.04/Dockerfile) 的Docker镜像安装全部依赖。
+你可以参考 [pegasus-build-dev/ubuntu16.04](https://github.com/pegasus-kv/pegasus-docker/blob/{{ page.version }}/pegasus-build-env/ubuntu16.04/Dockerfile) 的Docker镜像安装全部依赖。
 
 ## CentOS环境配置
 
-你可以参考 [pegasus-build-dev/centos7](https://github.com/pegasus-kv/pegasus-docker/blob/{{page.version}}/pegasus-build-env/centos7/Dockerfile) 的Docker镜像安装全部依赖。
+你可以参考 [pegasus-build-dev/centos7](https://github.com/pegasus-kv/pegasus-docker/blob/{{ page.version }}/pegasus-build-env/centos7/Dockerfile) 的Docker镜像安装全部依赖。
 
 ## 源码编译
 
-请先参考 [下载文档](/_docs/zh/downloads.md) 获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先 [体验onebox集群](/_overview/zh/onebox.md) 。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/1.11.6/compile-from-source.md b/_docs/zh/1.11.6/compile-from-source.md
index 1e8a2f3..759df8d 100755
--- a/_docs/zh/1.11.6/compile-from-source.md
+++ b/_docs/zh/1.11.6/compile-from-source.md
@@ -20,7 +20,7 @@
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md)获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/1.12.0/compile-from-source.md b/_docs/zh/1.12.0/compile-from-source.md
index c2087e1..5581d4b 100755
--- a/_docs/zh/1.12.0/compile-from-source.md
+++ b/_docs/zh/1.12.0/compile-from-source.md
@@ -12,15 +12,15 @@
 
 ## Ubuntu环境配置
 
-你可以参考 [pegasus-build-dev/ubuntu16.04](https://github.com/pegasus-kv/pegasus-docker/blob/{{page.version}}/pegasus-build-env/ubuntu16.04/Dockerfile) 的Docker镜像安装全部依赖。
+你可以参考 [pegasus-build-dev/ubuntu16.04](https://github.com/pegasus-kv/pegasus-docker/blob/{{ page.version }}/pegasus-build-env/ubuntu16.04/Dockerfile) 的Docker镜像安装全部依赖。
 
 ## CentOS环境配置
 
-你可以参考 [pegasus-build-dev/centos7](https://github.com/pegasus-kv/pegasus-docker/blob/{{page.version}}/pegasus-build-env/centos7/Dockerfile) 的Docker镜像安装全部依赖。
+你可以参考 [pegasus-build-dev/centos7](https://github.com/pegasus-kv/pegasus-docker/blob/{{ page.version }}/pegasus-build-env/centos7/Dockerfile) 的Docker镜像安装全部依赖。
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md)获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/1.12.3/compile-from-source.md b/_docs/zh/1.12.3/compile-from-source.md
index 2178746..e4d51f8 100755
--- a/_docs/zh/1.12.3/compile-from-source.md
+++ b/_docs/zh/1.12.3/compile-from-source.md
@@ -12,15 +12,15 @@
 
 ## Ubuntu环境配置
 
-你可以参考 [pegasus-build-dev/ubuntu16.04](https://github.com/pegasus-kv/pegasus-docker/blob/{{page.version}}/pegasus-build-env/ubuntu16.04/Dockerfile) 的Docker镜像安装全部依赖。
+你可以参考 [pegasus-build-dev/ubuntu16.04](https://github.com/pegasus-kv/pegasus-docker/blob/{{ page.version }}/pegasus-build-env/ubuntu16.04/Dockerfile) 的Docker镜像安装全部依赖。
 
 ## CentOS环境配置
 
-你可以参考 [pegasus-build-dev/centos7](https://github.com/pegasus-kv/pegasus-docker/blob/{{page.version}}/pegasus-build-env/centos7/Dockerfile) 的Docker镜像安装全部依赖。
+你可以参考 [pegasus-build-dev/centos7](https://github.com/pegasus-kv/pegasus-docker/blob/{{ page.version }}/pegasus-build-env/centos7/Dockerfile) 的Docker镜像安装全部依赖。
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md)获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/1.9.0/compile-from-source.md b/_docs/zh/1.9.0/compile-from-source.md
index 9a16015..ecface6 100755
--- a/_docs/zh/1.9.0/compile-from-source.md
+++ b/_docs/zh/1.9.0/compile-from-source.md
@@ -20,7 +20,7 @@
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md) 获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/2.0.0/compile-from-source.md b/_docs/zh/2.0.0/compile-from-source.md
index 7c8e05c..1c8bef2 100755
--- a/_docs/zh/2.0.0/compile-from-source.md
+++ b/_docs/zh/2.0.0/compile-from-source.md
@@ -20,7 +20,7 @@
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md) 获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -48,4 +48,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md) 。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/administration/administration.md b/_docs/zh/administration/administration.md
index 4a0cae5..b53c15e 100644
--- a/_docs/zh/administration/administration.md
+++ b/_docs/zh/administration/administration.md
@@ -4,37 +4,37 @@
 
 Pegasus 不仅仅只提供简单的 key value 存储接口,我们还基于稳定性考虑,增加了许多有助于高效运维的特性。
 
-如果你刚开始使用 Pegasus,想要把已编译好的系统部署在你的机器上,你首先需要参考 [配置管理](config.md),
-根据环境来调整参数。然后你应该参考 [集群部署](deployment.md) 将 Pegasus 搭载在你的机器集群上。
+如果你刚开始使用 Pegasus,想要把已编译好的系统部署在你的机器上,你首先需要参考 [配置管理](config),
+根据环境来调整参数。然后你应该参考 [集群部署](deployment) 将 Pegasus 搭载在你的机器集群上。
 
-在成功部署后,你应该着重观察系统运行情况,参考 [可视化监控](monitoring.md) 来查看相关指标。
+在成功部署后,你应该着重观察系统运行情况,参考 [可视化监控](monitoring) 来查看相关指标。
 
-在服务运行后,偶然的异常(可能是网络,磁盘,系统故障,潜在 Bug 导致的异常)会使集群抖动。如果造成了节点负载不均衡,你可以参照 [负载均衡](rebalance.md) 进行操作。
+在服务运行后,偶然的异常(可能是网络,磁盘,系统故障,潜在 Bug 导致的异常)会使集群抖动。如果造成了节点负载不均衡,你可以参照 [负载均衡](rebalance) 进行操作。
 
-如果是随着业务量增大,超出了你的服务资源所能承受的能力,你可以参照 [集群扩容缩容](scale-in-out.md) 来增加节点数。
-如果有机器发生持久性的故障,你也可以参照 [集群扩容缩容](scale-in-out.md) 剔除这个坏节点。
-如果是机器的某个SSD盘出故障,可以参照 [坏盘检修](bad-disk.md) 剔除这个坏盘。
+如果是随着业务量增大,超出了你的服务资源所能承受的能力,你可以参照 [集群扩容缩容](scale-in-out) 来增加节点数。
+如果有机器发生持久性的故障,你也可以参照 [集群扩容缩容](scale-in-out) 剔除这个坏节点。
+如果是机器的某个SSD盘出故障,可以参照 [坏盘检修](bad-disk) 剔除这个坏盘。
 
-如果需要升级集群,请参照 [集群升级](rolling-update.md)。
+如果需要升级集群,请参照 [集群升级](rolling-update)。
 
-集群运行过程中,你需要时刻关注资源(磁盘、内存、网络)的使用情况,并及时做出运维调整,请参照 [资源管理](resource-management.md)。
+集群运行过程中,你需要时刻关注资源(磁盘、内存、网络)的使用情况,并及时做出运维调整,请参照 [资源管理](resource-management)。
 
-如果业务数据量很大或者单条value很长,你可以参照 [数据压缩](compression.md) 来提高磁盘利用率和提升读写性能。
+如果业务数据量很大或者单条value很长,你可以参照 [数据压缩](compression) 来提高磁盘利用率和提升读写性能。
 
-对一些重要的业务,你可以将相关的表定期进行 [冷备份](cold-backup.md) 来保证数据安全性。冷备份的功能也常常用作于快速的大量数据迁移。
+对一些重要的业务,你可以将相关的表定期进行 [冷备份](cold-backup) 来保证数据安全性。冷备份的功能也常常用作于快速的大量数据迁移。
 
 对于一些极端情况,譬如元数据丢失、多个节点同时宕机,可能会造成集群数据的不一致。
-如果元数据丢失,建议你参考 [元数据恢复](meta-recovery.md);对于数据备份丢失造成的不一致,建议你参考 [Replica数据恢复](replica-recovery.md)。
+如果元数据丢失,建议你参考 [元数据恢复](meta-recovery);对于数据备份丢失造成的不一致,建议你参考 [Replica数据恢复](replica-recovery)。
 
-如果集群要依赖一个新的Zookeeper,需要迁移Zookeeper数据,请参考 [Zookeeper迁移](zk-migration.md)。
+如果集群要依赖一个新的Zookeeper,需要迁移Zookeeper数据,请参考 [Zookeeper迁移](zk-migration)。
 
 通常一个集群内会服务于许多表,所有的表都有相同的优先级,换言之,有某个表的请求量过大,
-其他表的服务质量就会下滑,这通常被称为 “多租户” 问题,你可以通过 [流量控制](throttling.md) 满足每个表的 SLA。
+其他表的服务质量就会下滑,这通常被称为 “多租户” 问题,你可以通过 [流量控制](throttling) 满足每个表的 SLA。
 
-如果要迁移一个表的数据到另外一个表,请参考 [Table迁移](table-migration.md)。
+如果要迁移一个表的数据到另外一个表,请参考 [Table迁移](table-migration)。
 
-表级的运维操作还包括 [Table软删除](table-soft-delete.md) 、[Table环境变量](table-env.md)、[Partition Split](partition-split.md)、[Manual Compact功能](manual-compact.md)、[Usage Scenario功能](usage-scenario.md) 等。
+表级的运维操作还包括 [Table软删除](table-soft-delete) 、[Table环境变量](table-env)、[Partition Split](partition-split)、[Manual Compact功能](manual-compact)、[Usage Scenario功能](usage-scenario) 等。
 
-除此之外,我们还支持了 [远程命令](remote-commands.md),方便运维人员对Server进行直接控制,并提供了 [HTTP接口](/_docs/zh/api/http.md)。
+除此之外,我们还支持了 [远程命令](remote-commands),方便运维人员对Server进行直接控制,并提供了 [HTTP接口](http)。
 
-我们在运维集群服务业务的过程中,也积累了很多 [运维经验](experiences.md),你可以参考。
+我们在运维集群服务业务的过程中,也积累了很多 [运维经验](experiences),你可以参考。
diff --git a/_docs/zh/administration/backup-request.md b/_docs/zh/administration/backup-request.md
index f499450..ea5bc32 100644
--- a/_docs/zh/administration/backup-request.md
+++ b/_docs/zh/administration/backup-request.md
@@ -27,8 +27,8 @@
 
 另外,由于delay时间设置的是p999时间,大约1000个请求里只有1个请求会发送backup request,因此额外请求量(也就是开启backup request的额外开销)比例在0.1%左右。依此类推,若想要降低P999时延,则可以将 `backupRequestDelayMs` 设置为P99延迟,由此会增加1%的额外读流量。
 
-| test case            | enable backup request | read p9999 |  
-|----------------------|-----------------------|------------|
-| 3-clients 15-threads | no                    | 988671     |
-| 3-clients 15-threads | yes                   | 153599     |
+|  test case   | enable backup request  |  read p9999  |  
+| ---- | ---- | ---- |
+| 3-clients 15-threads | no | 988671 |
+| 3-clients 15-threads | yes| 153599 |
 
diff --git a/_docs/zh/administration/cold-backup.md b/_docs/zh/administration/cold-backup.md
index ab2d0d8..7547713 100755
--- a/_docs/zh/administration/cold-backup.md
+++ b/_docs/zh/administration/cold-backup.md
@@ -86,7 +86,7 @@
 
 ### 创建冷备份策略
 
-通过[Shell工具的add_backup_policy命令](/_docs/zh/tools/shell.md#冷备份管理)可以创建一个冷备份策略:
+通过[Shell工具的add_backup_policy命令](/overview/shell#冷备份管理)可以创建一个冷备份策略:
 
 ```
 >>> add_backup_policy -p policy1 -b my_backup_media -a 1 -i 300 -s 16:00 -c 3
diff --git a/_docs/zh/administration/compression.md b/_docs/zh/administration/compression.md
index dc701d9..7775a8a 100755
--- a/_docs/zh/administration/compression.md
+++ b/_docs/zh/administration/compression.md
@@ -4,7 +4,7 @@
 
 # 客户端压缩
 
-请参考 [Java客户端文档#数据序列化](/_docs/zh/clients/java-client.md#数据序列化) 和 [Java客户端文档#数据压缩](/_docs/zh/clients/java-client.md#数据压缩) 。
+请参考 [Java客户端文档#数据序列化](/clients/java-client#数据序列化) 和 [Java客户端文档#数据压缩](/clients/java-client#数据压缩) 。
 
 # 服务端压缩
 
diff --git a/_docs/zh/administration/config.md b/_docs/zh/administration/config.md
index 0bf9ca4..323ca25 100644
--- a/_docs/zh/administration/config.md
+++ b/_docs/zh/administration/config.md
@@ -15,7 +15,7 @@
 * RocksDB相关:Pegasus所依赖的RocksDB的参数配置。
 * 其他杂项:Pegasus中一些组件模块的参数配置,譬如日志、监控、Zookeeper配置等。
 
-配置文件中会涉及到一些rDSN的概念,对这些概念的进一步理解,请参见 [rDSN项目](https://github.com/XiaoMi/rdsn) 。
+配置文件中会涉及到一些rDSN的概念,对这些概念的进一步理解,请参见[rDSN项目](https://github.com/XiaoMi/rdsn)。
 
 下面列举出了Pegasus配置文件的部分说明。这些配置项有些是和client通用的,比如app、task、threadpool等,其他是server端所独有的。要理解这些配置的真正含义,建议先阅读PacificA论文,并了解清楚rDSN项目和Pegasus架构。
 
diff --git a/_docs/zh/administration/deployment.md b/_docs/zh/administration/deployment.md
index 89a5e41..e7fe1cb 100755
--- a/_docs/zh/administration/deployment.md
+++ b/_docs/zh/administration/deployment.md
@@ -18,15 +18,15 @@
 ## 准备配置文件
 我们提供了配置文件[src/server/config.ini](https://github.com/apache/incubator-pegasus/blob/master/src/server/config.ini)(从1.7.1版本开始支持),你需要修改该文件,替换所有``%{xxx}``形式的变量为合适的值,如下:
 
-| 变量                  | 说明                                                                                                                   | 示例                           | 
-|---------------------|----------------------------------------------------------------------------------------------------------------------|------------------------------|
-| %{cluster.name}     | 集群名称。                                                                                                                | my_cluster                   |
-| %{home.dir}         | HOME路径。                                                                                                              | /home/work                   |
-| %{app.dir}          | 程序工作路径,默认数据文件和日志文件都会放在这下面。                                                                                           | /home/work/app/pegasus       |
-| %{slog.dir}         | 存放Shared Commit Log文件的路径,建议放在一个独享的SSD盘上。如果没有可用的SSD盘,可以设置为空字符串,表示默认使用%{app.dir}。                                      | /home/work/ssd1/pegasus      |
-| %{data.dirs}        | 存放各Replica数据的路径列表,可以用逗号分隔指定多个盘,每个路径需要指定一个名称,格式为``name1:path1,name2:path2``。如果没有可用的独立SSD盘,可以设置为空字符串,表示默认使用%{app.dir}。 | ssd2:/home/work/ssd2/pegasus |
-| %{meta.server.list} | MetaServer地址列表,用逗号分隔,格式为``ip1:port1,ip2:port2``。**注意只能用IP地址,不能用hostname**。                                           | 1.2.3.4:34601,1.2.3.5:34601  |
-| %{zk.server.list}   | Zookeeper地址列表,用逗号分隔,格式为``ip1:port1,ip2:port2``。                                                                      | 1.2.3.4:2181,1.2.3.5:2181    |
+| 变量  | 说明 | 示例 | 
+| ------------- | ------------- | ------------- |
+| %{cluster.name}  | 集群名称。  | my_cluster  |
+| %{home.dir}  | HOME路径。  | /home/work  |
+| %{app.dir}  | 程序工作路径,默认数据文件和日志文件都会放在这下面。  | /home/work/app/pegasus  |
+| %{slog.dir}  | 存放Shared Commit Log文件的路径,建议放在一个独享的SSD盘上。如果没有可用的SSD盘,可以设置为空字符串,表示默认使用%{app.dir}。  | /home/work/ssd1/pegasus  |
+| %{data.dirs}  | 存放各Replica数据的路径列表,可以用逗号分隔指定多个盘,每个路径需要指定一个名称,格式为``name1:path1,name2:path2``。如果没有可用的独立SSD盘,可以设置为空字符串,表示默认使用%{app.dir}。  | ssd2:/home/work/ssd2/pegasus |
+| %{meta.server.list}  | MetaServer地址列表,用逗号分隔,格式为``ip1:port1,ip2:port2``。**注意只能用IP地址,不能用hostname**。  | 1.2.3.4:34601,1.2.3.5:34601  |
+| %{zk.server.list}  | Zookeeper地址列表,用逗号分隔,格式为``ip1:port1,ip2:port2``。  | 1.2.3.4:2181,1.2.3.5:2181  |
 
 注意:同一个变量可能出现在多个地方,要保证所有的``%{xxx}``变量都被替换掉。
 
@@ -69,7 +69,7 @@
 ## 准备部署包
 ReplicaServer/MetaServer/Collector三种角色的Server共用一套server程序和配置文件。
 
-首先[编译Pegasus](/_docs/zh/build),编译完成后运行以下命令可以打包生产server端部署包:
+首先[编译Pegasus](/overview/compilation),编译完成后运行以下命令可以打包生产server端部署包:
 ```
 ./run.sh pack_server
 ```
@@ -104,7 +104,7 @@
 
 集群启动成功后,会默认创建一个``temp``表,该表也用于Collector的集群可用度检查,最好不要删除。
 
-你可以使用[Shell工具](/_docs/zh/tools/shell.md)查看集群的各种状态。如果启动失败,可以到``%{app.dir}/log``下面查看错误日志,排查问题。
+你可以使用[Shell工具](/overview/shell)查看集群的各种状态。如果启动失败,可以到``%{app.dir}/log``下面查看错误日志,排查问题。
 
 # 分布式部署工具
 
diff --git a/_docs/zh/administration/duplication.md b/_docs/zh/administration/duplication.md
index ad1a072..8896260 100644
--- a/_docs/zh/administration/duplication.md
+++ b/_docs/zh/administration/duplication.md
@@ -167,7 +167,7 @@
 
 当 `start_dup` 时,热备份任务会从之前记录的确认点开始复制,这样我们就保证了写增量的完整性。
 
-另外需注意的是,由于写增量的长时间堆积,一时可能有大量日志复制,热备份流量会突增,从而导致服务不稳定。因此,我们需要在远端机房设置[限流(write throttling)](/_docs/zh/administration/throttling.md)。
+另外需注意的是,由于写增量的长时间堆积,一时可能有大量日志复制,热备份流量会突增,从而导致服务不稳定。因此,我们需要在远端机房设置[限流(write throttling)](/administration/throttling)。
 
 ```
 >>> get_app_envs
diff --git a/_docs/zh/administration/manual-compact.md b/_docs/zh/administration/manual-compact.md
index 473f43f..eb67646 100644
--- a/_docs/zh/administration/manual-compact.md
+++ b/_docs/zh/administration/manual-compact.md
@@ -86,7 +86,7 @@
 
 ## 通过shell设置
 
-既然Manual Compact功能是利用[Table环境变量](table-env)触发的,那么可以直接通过shell功能的[set_app_envs命令](/_docs/zh/tools/shell.md#set_app_envs)来设置。需要设置的环境变量参照上面的描述,环境变量设置后不会立即生效,大约需要等几十秒后才能在所有replica上生效。
+既然Manual Compact功能是利用[Table环境变量](table-env)触发的,那么可以直接通过shell功能的[set_app_envs命令](/overview/shell#set_app_envs)来设置。需要设置的环境变量参照上面的描述,环境变量设置后不会立即生效,大约需要等几十秒后才能在所有replica上生效。
 
 由于需要设置的环境变量比较多,且对数据格式有要求,所以强烈建议不要自己直接设置,而是通过我们提供的脚本工具来设置,如下所示。
 
diff --git a/_docs/zh/administration/monitoring.md b/_docs/zh/administration/monitoring.md
index 0a60093..3cf544a 100644
--- a/_docs/zh/administration/monitoring.md
+++ b/_docs/zh/administration/monitoring.md
@@ -128,7 +128,7 @@
 ./prometheus --config.file=prometheus.yml

 ```

 

-进入网址 http://localhost:9090 看到如下界面即表示到这一步为止是成功的。

+进入网址 [localhost:9090](http://localhost:9090) 看到如下界面即表示到这一步为止是成功的。

 

 ![prometheus-server](/assets/images/prometheus-server.png)

 

@@ -179,7 +179,7 @@
 

     ![grafana-login](/assets/images/grafana-login.png)

 

-    - 默认地址:http://localhost:3000

+    - 默认地址:[http://localhost:3000](http://localhost:3000)

     - 默认账户:admin

     - 默认密码:admin

 

diff --git a/_docs/zh/administration/partition-split.md b/_docs/zh/administration/partition-split.md
index 8ec244f..a1d3564 100644
--- a/_docs/zh/administration/partition-split.md
+++ b/_docs/zh/administration/partition-split.md
@@ -92,5 +92,5 @@
 同样通过`app <table_name> -d`查看表详情,当发现所有ballot都大于0时表示所有partition都被注册,若当前流量不大可以将meta server设置为lively状态,进行负载均衡,并且通过`app_stat`命令查看表的大小,应该是split前的2倍左右
 
 ## 手动触发Manual-Compact
-关于Manual compact详情可参见[Manual compact功能](/_docs/zh/administration/manual-compact.md),在集群CPU空闲时进行操作,建议命令示例如下:
+关于Manual compact详情可参见[Manual compact功能](manual-compact),在集群CPU空闲时进行操作,建议命令示例如下:
 `./scripts/pegasus_manual_compact.sh -c <meta_list> -a <table_name>` 
diff --git a/_docs/zh/administration/remote-commands.md b/_docs/zh/administration/remote-commands.md
index ecbed26..f7d0140 100644
--- a/_docs/zh/administration/remote-commands.md
+++ b/_docs/zh/administration/remote-commands.md
@@ -34,42 +34,42 @@
 
 ## rdsn内建命令
 
-| 命令                    | 功能                                                                    |
-|-----------------------|-----------------------------------------------------------------------| 
-| engine                | 获取rdsn框架引擎的信息,主要是包含哪些线程池、每个线程池有多少个线程                                  |
-| system.queue          | 获取各线程池执行队列的排队长度                                                       |
-| server-info           | 获取进程的基本信息,包括版本号、启动时间,对应shell的`server_info`子命令                         |
-| server-stat           | 获取进程的简要统计信息,包括get/put等操作的QPS和延迟、机器的内存和存储使用情况,对应shell的`server_stat`子命令 |
-| task-code             | 获取该进程注册的task code列表                                                   |
-| flush_log             | 将最近缓冲区中的日志数据刷出到日志文件中,对应shell的`flush_log`子命令                           |
-| reset-log-start-level | 动态修改日志的级别                                                             |
-| perf-counters         | 获取最近一个统计周期内的perf counter数据                                            |
-| config-dump           | 获取该进程启动时的配置文件的信息                                                      |
+| 命令 | 功能 
+| ----- | ---- | 
+| engine | 获取rdsn框架引擎的信息,主要是包含哪些线程池、每个线程池有多少个线程
+| system.queue | 获取各线程池执行队列的排队长度
+| server-info | 获取进程的基本信息,包括版本号、启动时间,对应shell的`server_info`子命令
+| server-stat | 获取进程的简要统计信息,包括get/put等操作的QPS和延迟、机器的内存和存储使用情况,对应shell的`server_stat`子命令
+| task-code | 获取该进程注册的task code列表
+| flush_log | 将最近缓冲区中的日志数据刷出到日志文件中,对应shell的`flush_log`子命令
+| reset-log-start-level | 动态修改日志的级别
+| perf-counters | 获取最近一个统计周期内的perf counter数据
+| config-dump | 获取该进程启动时的配置文件的信息
 
 ## meta-server
 
-| 命令                                          | 功能                                                                                        
-|----------------------------------------------|-------------------------------------------------------------------------------------------| 
-| meta.lb.assign_delay_ms                      | 动态修改配置`replica_assign_delay_ms_for_dropouts`                                              
-| meta.lb.assign_secondary_black_list          | 动态修改`add_secondary`操作的黑名单,名单中的节点在负载均衡中不再分派replica                                         
-| meta.lb.balancer_in_turn                     | 动态修改配置`balancer_in_turn`,控制负载均衡app时是one-by-one执行还是并行执行                                    
-| meta.lb.only_primary_balancer                | 动态修改配置`only_primary_balancer`,控制负载均衡时是否只要求各机器的primary replica个数达到平衡                       
-| meta.lb.only_move_primary                    | 动态修改配置`only_move_primary`,控制负载均衡时是否只做primary replica迁移,不做replica数据拷贝                      
-| meta.lb.add_secondary_enable_flow_control    | 动态修改配置`add_secondary_enable_flow_control`,控制负载均衡时是否对`add_secondary`操作进行流控                 
-| meta.lb.add_secondary_max_count_for_one_node | 动态修改配置`add_secondary_max_count_for_one_node`,控制负载均衡时如果进行流控,单个机器最多并发执行`add_secondary`操作的个数 
+| 命令 | 功能 
+| ----- | ---- | 
+| meta.lb.assign_delay_ms | 动态修改配置`replica_assign_delay_ms_for_dropouts`
+| meta.lb.assign_secondary_black_list | 动态修改`add_secondary`操作的黑名单,名单中的节点在负载均衡中不再分派replica
+| meta.lb.balancer_in_turn | 动态修改配置`balancer_in_turn`,控制负载均衡app时是one-by-one执行还是并行执行
+| meta.lb.only_primary_balancer | 动态修改配置`only_primary_balancer`,控制负载均衡时是否只要求各机器的primary replica个数达到平衡
+| meta.lb.only_move_primary | 动态修改配置`only_move_primary`,控制负载均衡时是否只做primary replica迁移,不做replica数据拷贝
+| meta.lb.add_secondary_enable_flow_control | 动态修改配置`add_secondary_enable_flow_control`,控制负载均衡时是否对`add_secondary`操作进行流控
+| meta.lb.add_secondary_max_count_for_one_node | 动态修改配置`add_secondary_max_count_for_one_node`,控制负载均衡时如果进行流控,单个机器最多并发执行`add_secondary`操作的个数
 
 ## replica-server
 
-| 命令                          | 功能                                                                                |
-|-----------------------------|-----------------------------------------------------------------------------------| 
-| replica.kill_partition      | 将指定的replica关闭,停止提供服务                                                              |
-| replica.deny-client         | 动态修改配置`deny_client_on_start`,控制是否拒绝客户端的读写请求                                       |
-| replica.verbose-client-log  | 动态修改配置`verbose_client_log_on_start`,控制回复客户端的请求时是否打印ERROR日志                        |
-| replica.verbose-commit-log  | 动态修改配置`verbose_commit_log_on_start`,控制在提交写请求时是否打印DEBUG日志                          |
-| replica.trigger-checkpoint  | 对指定的replica手动触发`async_checkpoint`操作                                               |
-| replica.query-compact       | 对指定的replica查询其执行[Manual-Compact](/_docs/zh/administration/manual-compact.md)操作的状态 |
-| replica.query-app-envs      | 对指定的replica查询其当前的[Table环境变量](/_docs/zh/administration/table-env.md)               |
-| useless-dir-reserve-seconds | 动态修改无用文件夹的保留时间,方便快速释放存储空间,从1.11.3版本开始支持,参见[垃圾文件夹管理](#resource-management#垃圾文件夹管理) |
+| 命令 | 功能 
+| ----- | ---- | 
+| replica.kill_partition | 将指定的replica关闭,停止提供服务
+| replica.deny-client | 动态修改配置`deny_client_on_start`,控制是否拒绝客户端的读写请求
+| replica.verbose-client-log | 动态修改配置`verbose_client_log_on_start`,控制回复客户端的请求时是否打印ERROR日志
+| replica.verbose-commit-log | 动态修改配置`verbose_commit_log_on_start`,控制在提交写请求时是否打印DEBUG日志
+| replica.trigger-checkpoint | 对指定的replica手动触发`async_checkpoint`操作
+| replica.query-compact | 对指定的replica查询其执行[Manual-Compact](manual-compact)操作的状态
+| replica.query-app-envs | 对指定的replica查询其当前的[Table环境变量](table-env)
+| useless-dir-reserve-seconds | 动态修改无用文件夹的保留时间,方便快速释放存储空间,从1.11.3版本开始支持,参见[垃圾文件夹管理](#resource-management#垃圾文件夹管理)
 
 # 如何使用
 
diff --git a/_docs/zh/administration/rolling-update.md b/_docs/zh/administration/rolling-update.md
index 0671b95..e33e52b 100644
--- a/_docs/zh/administration/rolling-update.md
+++ b/_docs/zh/administration/rolling-update.md
@@ -30,12 +30,12 @@
 ## 高可用升级
 根据以上对高可用度的考虑,我们建议完善的升级流程如下:
 * 准备好新的Server程序包和配置文件
-* 使用shell工具将集群的meta level设置为steady,关闭[负载均衡功能](/_docs/zh/administration/rebalance.md),避免不必要的replica迁移
+* 使用shell工具将集群的meta level设置为steady,关闭[负载均衡功能](rebalance),避免不必要的replica迁移
   ```
   >>> set_meta_level steady
   ```
 * 升级replica server进程,采用逐个升级的策略。升级单个replica server:
-  * 通过shell向meta server发送[远程命令](/_docs/zh/administration/remote-commands.md#meta-server),禁掉`add_secondary`操作:
+  * 通过shell向meta server发送[远程命令](remote-commands#meta-server),禁掉`add_secondary`操作:
     ```
     >>> remote_command -t meta-server meta.lb.add_secondary_max_count_for_one_node 0
     ```
diff --git a/_docs/zh/administration/table-env.md b/_docs/zh/administration/table-env.md
index 5851b41..e632cc0 100644
--- a/_docs/zh/administration/table-env.md
+++ b/_docs/zh/administration/table-env.md
@@ -22,11 +22,11 @@
 * 环境变量的key通过都是采用`.`分隔的字段的形式,方便组织。
 
 目前通过Table环境变量支持的功能包括:
-* [Manual-Compact功能](/_docs/zh/administration/manual-compact.md)
-* [Usage-Scenario功能](/_docs/zh/administration/usage-scenario.md)
+* [Manual-Compact功能](manual-compact)
+* [Usage-Scenario功能](usage-scenario)
 
 # 操作命令
-Pegasus的[Shell工具](/_docs/zh/tools/shell.md#set_app_envs)中提供了操作Table环境变量的命令。这些命令执行前都需要先执行`use xxx`选择表。
+Pegasus的[Shell工具](/overview/shell#set_app_envs)中提供了操作Table环境变量的命令。这些命令执行前都需要先执行`use xxx`选择表。
 
 ## get_app_envs
 获取环境变量列表,用法:`get_app_envs`
@@ -112,7 +112,7 @@
 replica.deny_client_write | bool | true \| false | true | 拒绝写请求 | 1.11.2
 replica.write_throttling | string | 特定格式 | 1000\*delay\*100 | [流量控制#表级流控](throttling#表级流控) | 1.11.2
 replica.write_throttling_by_size | string | 特定格式 | 1000\*delay\*100 | [流量控制#表级流控](throttling#表级流控) | 1.12.0
-default_ttl | int | >=0 | 86400 | [表级TTL](/_docs/zh/api/ttl.md#表级TTL) | 1.11.2
+default_ttl | int | >=0 | 86400 | [表级TTL](/api/ttl#表级TTL) | 1.11.2
 manual_compact.disabled | bool | true \| false | true | [Manual-Compact](manual-compact) | 1.9.0
 manual_compact.max_concurrent_running_count | int | >=0 | 10 | [Manual-Compact](manual-compact) | 1.11.3
 manual_compact.once.trigger_time | int | Unix Timestamp in Seconds | 1547091115 | [Manual-Compact](manual-compact) | 1.8.1
@@ -121,7 +121,7 @@
 manual_compact.periodic.trigger_time | string | 特定格式 | 3:00,5:00 | [Manual-Compact](manual-compact) | 1.8.1
 manual_compact.periodic.target_level | int | -1 \| >=1 | 2 | [Manual-Compact](manual-compact) | 1.8.1
 manual_compact.periodic.bottommost_level_compaction | string | force \| skip | force | [Manual-Compact](manual-compact) | 1.8.1
-rocksdb.checkpoint.reserve_min_count | int | >=1 | 2 | [Rocksdb-Checkpoint管理](resource-management#Rocksdb-Checkpoint管理) | 1.11.3
-rocksdb.checkpoint.reserve_time_seconds | int | >=0 | 600 | [Rocksdb-Checkpoint管理](resource-management#Rocksdb-Checkpoint管理) | 1.11.3
+rocksdb.checkpoint.reserve_min_count | int | >=1 | 2 | [Rocksdb-Checkpoint管理](resource-management#rocksdb-checkpoint管理) | 1.11.3
+rocksdb.checkpoint.reserve_time_seconds | int | >=0 | 600 | [Rocksdb-Checkpoint管理](resource-management#rocksdb-checkpoint管理) | 1.11.3
 business.info | string | 特定格式(使用utf-8编码) | depart=云平台部-存储平台,user=qinzuoyan&wutao1 | 记录表的业务归属信息,可用于生成账单 | -
 replica.slow_query_threshold | int | >=20 | 30 | 慢查询阈值 | 1.12.0
diff --git a/_docs/zh/administration/table-migration.md b/_docs/zh/administration/table-migration.md
index e81a874..39547af 100644
--- a/_docs/zh/administration/table-migration.md
+++ b/_docs/zh/administration/table-migration.md
@@ -8,7 +8,7 @@
 
 # copy_data迁移
 
-Shell工具的[copy_data命令](/_docs/zh/tools/shell.md#copy_data)的原理:通过scan接口从源集群的表中逐条读入数据,然后通过set接口将数据逐条写入到目标集群的表中。如果set的数据在目标集群的表中已经存在,会直接覆盖。
+Shell工具的[copy_data命令](/overview/shell#copy_data)的原理:通过scan接口从源集群的表中逐条读入数据,然后通过set接口将数据逐条写入到目标集群的表中。如果set的数据在目标集群的表中已经存在,会直接覆盖。
 
 copy_data命令:
 ```
@@ -33,7 +33,7 @@
 
 # 冷备份迁移
 
-所谓冷备份迁移,就是利用Pegasus的[冷备份功能](/_docs/zh/administration/cold-backup.md),先将数据备份到HDFS或者其他介质上,然后恢复到新的表中。
+所谓冷备份迁移,就是利用Pegasus的[冷备份功能](/administration/cold-backup),先将数据备份到HDFS或者其他介质上,然后恢复到新的表中。
 
 冷备份迁移的好处:
 * 速度更快:因为冷备份是拷贝文件,相对copy_data的逐条拷贝,速度要快很多。
diff --git a/_docs/zh/administration/throttling.md b/_docs/zh/administration/throttling.md
index 4575d51..a776e3d 100755
--- a/_docs/zh/administration/throttling.md
+++ b/_docs/zh/administration/throttling.md
@@ -17,7 +17,7 @@
 
 # 客户端流控
 
-目前Java客户端提供了流控工具,参见[Java客户端文档#流量控制](/_docs/zh/clients/java-client.md#流量控制)。
+目前Java客户端提供了流控工具,参见[Java客户端文档#流量控制](/clients/java-client#流量控制)。
 
 # 服务端流控
 
diff --git a/_docs/zh/administration/usage-scenario.md b/_docs/zh/administration/usage-scenario.md
index 15f53b4..191218e 100644
--- a/_docs/zh/administration/usage-scenario.md
+++ b/_docs/zh/administration/usage-scenario.md
@@ -57,7 +57,7 @@
 
 # 如何设置
 ## 通过shell设置
-通过shell的[set_app_envs命令](/_docs/zh/tools/shell.md#set_app_envs)来设置,譬如设置temp表为bulk_load模式:
+通过shell的[set_app_envs命令](/overview/shell#set_app_envs)来设置,譬如设置temp表为bulk_load模式:
 ```
 >>> use temp
 >>> set_app_envs rocksdb.usage_scenario bulk_load
diff --git a/_docs/zh/administration/whitelist.md b/_docs/zh/administration/whitelist.md
index d7dd806..88139a7 100644
--- a/_docs/zh/administration/whitelist.md
+++ b/_docs/zh/administration/whitelist.md
@@ -40,12 +40,12 @@
 
 由于扩容需replica server先与meta server通信,如果此时白名单未更新,会导致meta server拒绝这个新replica server加入集群。
 
-所以,开启白名单的集群扩容步骤,需要在普通[扩容流程](/_docs/zh/administration/scale-in-out.md#扩容流程)前,进行一下步骤:
+所以,开启白名单的集群扩容步骤,需要在普通[扩容流程](membership-change#扩容流程)前,进行一下步骤:
 1. 修改meta server白名单配置,加入新replica servers
 2. 重启meta server
 
 ### 缩容
 
-[缩容流程](/_docs/zh/administration/scale-in-out.md#缩容流程)中,白名单不会造成任何影响。白名单的更新也可以在缩容完成之后任意时刻进行。
+[缩容流程](membership-change#缩容流程)中,白名单不会造成任何影响。白名单的更新也可以在缩容完成之后任意时刻进行。
 
 但为了安全,建议及时更新白名单。只需在缩容流程的最后一步“重启meta server”前,修改meta server的白名单配置。
\ No newline at end of file
diff --git a/_docs/zh/api/api.md b/_docs/zh/api/api.md
index 4250f43..1a0bb08 100644
--- a/_docs/zh/api/api.md
+++ b/_docs/zh/api/api.md
@@ -3,7 +3,7 @@
 ---
 
 这里介绍Pegasus服务所提供的用户接口。客户端可以在我们的服务接口上做二次封装。
-通常你只需要通过 [客户端文档](/_docs/zh/clients) 学习如何与Pegasus交互。
+通常你只需要通过 [客户端文档](/clients) 学习如何与Pegasus交互。
 
 当前Pegasus支持几种接口协议:
 
@@ -22,7 +22,7 @@
 ## Redis 协议
 
 我们通过Pegasus Redis Proxy这一组件在Pegasus协议之上支持了Redis协议。
-你可以阅读 [Redis适配](/_docs/zh/api/redis.md) 了解更多。
+你可以阅读 [Redis适配](/redis) 了解更多。
 
 因为Redis接口提供了GEO支持,我们也借此支持了地理信息查询的功能。
-你可以阅读 [GEO支持](/_docs/zh/api/geo.md) 了解更多。 
+你可以阅读 [GEO支持](/geo) 了解更多。 
diff --git a/_docs/zh/api/geo.md b/_docs/zh/api/geo.md
index e3d2a73..2fc8624 100755
--- a/_docs/zh/api/geo.md
+++ b/_docs/zh/api/geo.md
@@ -37,38 +37,38 @@
 S2中的Hilbert曲线编码由30位组成,每一位代表一层划分。下表是各层单个cell的面积和cell个数。
 
 | **level** | **min area** | **max area** | **average area** | **units** | **Number of cells** |
-|-----------|--------------|--------------|------------------|-----------|---------------------|
-| 00        | 85011012.19  | 85011012.19  | 85011012.19      | km^2      | 6                   |
-| 01        | 21252753.05  | 21252753.05  | 21252753.05      | km^2      | 24                  |
-| 02        | 4919708.23   | 6026521.16   | 5313188.26       | km^2      | 96                  |
-| 03        | 1055377.48   | 1646455.50   | 1328297.07       | km^2      | 384                 |
-| 04        | 231564.06    | 413918.15    | 332074.27        | km^2      | 1536                |
-| 05        | 53798.67     | 104297.91    | 83018.57         | km^2      | 6K                  |
-| 06        | 12948.81     | 26113.30     | 20754.64         | km^2      | 24K                 |
-| 07        | 3175.44      | 6529.09      | 5188.66          | km^2      | 98K                 |
-| 08        | 786.20       | 1632.45      | 1297.17          | km^2      | 393K                |
-| 09        | 195.59       | 408.12       | 324.29           | km^2      | 1573K               |
-| 10        | 48.78        | 102.03       | 81.07            | km^2      | 6M                  |
-| 11        | 12.18        | 25.51        | 20.27            | km^2      | 25M                 |
-| 12        | 3.04         | 6.38         | 5.07             | km^2      | 100M                |
-| 13        | 0.76         | 1.59         | 1.27             | km^2      | 402M                |
-| 14        | 0.19         | 0.40         | 0.32             | km^2      | 1610M               |
-| 15        | 47520.30     | 99638.93     | 79172.67         | m^2       | 6B                  |
-| 16        | 11880.08     | 24909.73     | 19793.17         | m^2       | 25B                 |
-| 17        | 2970.02      | 6227.43      | 4948.29          | m^2       | 103B                |
-| 18        | 742.50       | 1556.86      | 1237.07          | m^2       | 412B                |
-| 19        | 185.63       | 389.21       | 309.27           | m^2       | 1649B               |
-| 20        | 46.41        | 97.30        | 77.32            | m^2       | 7T                  |
-| 21        | 11.60        | 24.33        | 19.33            | m^2       | 26T                 |
-| 22        | 2.90         | 6.08         | 4.83             | m^2       | 105T                |
-| 23        | 0.73         | 1.52         | 1.21             | m^2       | 422T                |
-| 24        | 0.18         | 0.38         | 0.30             | m^2       | 1689T               |
-| 25        | 453.19       | 950.23       | 755.05           | cm^2      | 7e15                |
-| 26        | 113.30       | 237.56       | 188.76           | cm^2      | 27e15               |
-| 27        | 28.32        | 59.39        | 47.19            | cm^2      | 108e15              |
-| 28        | 7.08         | 14.85        | 11.80            | cm^2      | 432e15              |
-| 29        | 1.77         | 3.71         | 2.95             | cm^2      | 1729e15             |
-| 30        | 0.44         | 0.93         | 0.74             | cm^2      | 7e18                |
+| --------- | ------------ | ------------ | ---------------- | --------- | ------------------- |
+| 00        | 85011012.19  | 85011012.19  | 85011012.19      | km^2    | 6                   |
+| 01        | 21252753.05  | 21252753.05  | 21252753.05      | km^2    | 24                  |
+| 02        | 4919708.23   | 6026521.16   | 5313188.26       | km^2    | 96                  |
+| 03        | 1055377.48   | 1646455.50   | 1328297.07       | km^2    | 384                 |
+| 04        | 231564.06    | 413918.15    | 332074.27        | km^2    | 1536                |
+| 05        | 53798.67     | 104297.91    | 83018.57         | km^2    | 6K                  |
+| 06        | 12948.81     | 26113.30     | 20754.64         | km^2    | 24K                 |
+| 07        | 3175.44      | 6529.09      | 5188.66          | km^2    | 98K                 |
+| 08        | 786.20       | 1632.45      | 1297.17          | km^2    | 393K                |
+| 09        | 195.59       | 408.12       | 324.29           | km^2    | 1573K               |
+| 10        | 48.78        | 102.03       | 81.07            | km^2    | 6M                  |
+| 11        | 12.18        | 25.51        | 20.27            | km^2    | 25M                 |
+| 12        | 3.04         | 6.38         | 5.07             | km^2    | 100M                |
+| 13        | 0.76         | 1.59         | 1.27             | km^2    | 402M                |
+| 14        | 0.19         | 0.40         | 0.32             | km^2    | 1610M               |
+| 15        | 47520.30     | 99638.93     | 79172.67         | m^2     | 6B                  |
+| 16        | 11880.08     | 24909.73     | 19793.17         | m^2     | 25B                 |
+| 17        | 2970.02      | 6227.43      | 4948.29          | m^2     | 103B                |
+| 18        | 742.50       | 1556.86      | 1237.07          | m^2     | 412B                |
+| 19        | 185.63       | 389.21       | 309.27           | m^2     | 1649B               |
+| 20        | 46.41        | 97.30        | 77.32            | m^2     | 7T                  |
+| 21        | 11.60        | 24.33        | 19.33            | m^2     | 26T                 |
+| 22        | 2.90         | 6.08         | 4.83             | m^2     | 105T                |
+| 23        | 0.73         | 1.52         | 1.21             | m^2     | 422T                |
+| 24        | 0.18         | 0.38         | 0.30             | m^2     | 1689T               |
+| 25        | 453.19       | 950.23       | 755.05           | cm^2    | 7e15                |
+| 26        | 113.30       | 237.56       | 188.76           | cm^2    | 27e15               |
+| 27        | 28.32        | 59.39        | 47.19            | cm^2    | 108e15              |
+| 28        | 7.08         | 14.85        | 11.80            | cm^2    | 432e15              |
+| 29        | 1.77         | 3.71         | 2.95             | cm^2    | 1729e15             |
+| 30        | 0.44         | 0.93         | 0.74             | cm^2    | 7e18                |
 
 
 
@@ -231,7 +231,7 @@
 
 ## 配置文件
 
-redis proxy的使用请参考[Redis适配](/_docs/zh/api/redis.md)。
+redis proxy的使用请参考[Redis适配](redis)。
 
 GEO API添加的配置文件如下:
 
@@ -258,7 +258,7 @@
 
 在进行`copy_data`操作之前,目标集群以及两个目标表都需要提前创建好。
 
-数据导入完成后就可以搭建`redis_proxy`了,具体的说明参考[redis适配](/_docs/zh/api/redis.md),需要注意的是配置项:
+数据导入完成后就可以搭建`redis_proxy`了,具体的说明参考[redis适配](redis),需要注意的是配置项:
 
 ```
 [apps.proxy]
@@ -307,12 +307,12 @@
 
 ### 测试结果
 
-| 半径(m) | P50(ms)     | P75(ms)     | P99(ms)     | P99.9(ms)   | 平均结果条数     | 单节点QPS  |
-|-------|-------------|-------------|-------------|-------------|------------|---------|
-| 50    | 1.63071622  | 1.84607433  | 4.04545455  | 6.28        | 9.4608     | 740.287 |
-| 100   | 1.76        | 2.33614794  | 5.4         | 6.45319149  | 38.0296    | 656.66  |
-| 200   | 2.41017042  | 3.31062092  | 6.41781609  | 9.60588235  | 154.3682   | 536.624 |
-| 300   | 3.30833333  | 4.21979167  | 9.4310559   | 18          | 350.9676   | 434.491 |
-| 500   | 5.07763975  | 6.84964682  | 16.84931507 | 21.78082192 | 986.0826   | 347.231 |
-| 1000  | 12.28164727 | 18.70972532 | 43.18181818 | 57.049698   | 3947.5294  | 204.23  |
-| 2000  | 35.78666667 | 54.7300885  | 108.7331378 | 148.616578  | 15674.1198 | 98.7633 |
+| 半径(m) | P50(ms)     | P75(ms)     | P99(ms)     | P99.9(ms)   | 平均结果条数 | 单节点QPS |
+| ------- | ----------- | ----------- | ----------- | ----------- | ------------ | --------- |
+| 50      | 1.63071622  | 1.84607433  | 4.04545455  | 6.28        | 9.4608       | 740.287   |
+| 100     | 1.76        | 2.33614794  | 5.4         | 6.45319149  | 38.0296      | 656.66    |
+| 200     | 2.41017042  | 3.31062092  | 6.41781609  | 9.60588235  | 154.3682     | 536.624   |
+| 300     | 3.30833333  | 4.21979167  | 9.4310559   | 18          | 350.9676     | 434.491   |
+| 500     | 5.07763975  | 6.84964682  | 16.84931507 | 21.78082192 | 986.0826     | 347.231   |
+| 1000    | 12.28164727 | 18.70972532 | 43.18181818 | 57.049698   | 3947.5294    | 204.23    |
+| 2000    | 35.78666667 | 54.7300885  | 108.7331378 | 148.616578  | 15674.1198   | 98.7633   |
diff --git a/_docs/zh/api/redis.md b/_docs/zh/api/redis.md
index 632259d..84720cc 100644
--- a/_docs/zh/api/redis.md
+++ b/_docs/zh/api/redis.md
@@ -22,7 +22,7 @@
 
 ## 配置
 
-redis proxy的配置文件规则遵循[配置说明](/_docs/zh/administration/config.md),参考[示例](https://github.com/apache/incubator-pegasus/blob/master/src/geo/bench/config.ini)。
+redis proxy的配置文件规则遵循[配置说明](/administration/config),参考[示例](https://github.com/apache/incubator-pegasus/blob/master/src/geo/bench/config.ini)。
 
 在redis proxy中有几项特有的配置项需要注意:
 
@@ -131,7 +131,7 @@
 
 ### GEODIST
 
-[GEO接口的实现原理](geo.md)
+[GEO接口的实现原理](geo)
 
 ```
 GEODIST key member1 member2 [unit]
diff --git a/_docs/zh/api/single-atomic.md b/_docs/zh/api/single-atomic.md
index e8d155c..1ff7013 100755
--- a/_docs/zh/api/single-atomic.md
+++ b/_docs/zh/api/single-atomic.md
@@ -7,7 +7,7 @@
 # 原理
 Pegasus采用Hash分片,同一个HashKey的数据总是存储在同一个Partition中,即相同的Replica中。同时,Pegasus实现时,同一个Replica的写操作在server端总是串行执行的。因此对于同一HashKey下的数据操作,可以很方便地实现原子的语义。
 
-对于纯粹的写操作,譬如[multiSet](/_docs/zh/clients/java-client.md#multiset)和[multiDel](/_docs/zh/clients/java-client.md#multidel),单个操作中对多个SortKey同时set或者del,原子语义很容易理解,要么同时成功,要么同时失败,所以这两个操作属于单行原子操作。
+对于纯粹的写操作,譬如[multiSet](/clients/java-client#multiset)和[multiDel](/clients/java-client#multidel),单个操作中对多个SortKey同时set或者del,原子语义很容易理解,要么同时成功,要么同时失败,所以这两个操作属于单行原子操作。
 
 不过我们这里重点关注的是另一类操作:**先读后写,并且写操作依赖读的结果**。这类操作的特点就是:它们是**非幂等**的,即同一个操作如何多次重复执行,造成的结果(包括数据实际的更新情况、返回给用户的结果)可能是不同的。原子增减和CAS操作都属于这类。Pegasus能保证这类操作的原子性和一致性,因为:
 * 同一个HashKey的数据总是存储在同一个Replica中;
@@ -33,7 +33,7 @@
 # CAS操作
 另一类很有用的原子操作就是CAS(Compare-And-Swap),直译就是对比交换,最初是表示一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。基于CAS操作,可以实现很多高级的并发特性,譬如锁。因此很多编程语言也原生地提供CAS操作。
 
-Pegasus提供了check_and_set的CAS操作,其语义就是:根据HashKey的某一个SortKey的值是否满足某种条件,来决定是否修改另一个SortKey的值。我们将用于判断条件的SortKey称之为`CheckSortKey`,将用于设置值的SortKey称之为`SetSortKey`。对应地,CheckSortKey的value称之为`CheckValue`,SetSortKey要设置的value称之为`SetValue`。接口参见[checkAndSet](/_docs/zh/clients/java-client.md#checkandset),以及其扩展版本[checkAndMutate](/_docs/zh/clients/java-client.md#checkandmutate)和[compareExchange](/_docs/zh/clients/java-client.md#compareexchange)。
+Pegasus提供了check_and_set的CAS操作,其语义就是:根据HashKey的某一个SortKey的值是否满足某种条件,来决定是否修改另一个SortKey的值。我们将用于判断条件的SortKey称之为`CheckSortKey`,将用于设置值的SortKey称之为`SetSortKey`。对应地,CheckSortKey的value称之为`CheckValue`,SetSortKey要设置的value称之为`SetValue`。接口参见[checkAndSet](/clients/java-client#checkandset),以及其扩展版本[checkAndMutate](/clients/java-client#checkandmutate)和[compareExchange](/clients/java-client#compareexchange)。
 
 语义解释:
 * 只有当CheckValue满足指定的条件时,才会设置SetSortKey的值。
@@ -45,7 +45,7 @@
 * 可以通过选项`CheckAndSetOptions.returnCheckValue`指定返回CheckValue的值。
 * 可以通过选项`CheckAndSetOptions.setValueTTLSeconds`指定SetValue的TTL。
 
-为了方便使用,Pegasus Java Client还提供了compare_exchange接口:当HashKey的某个SortKey的value按照字节串比较**等于**用户指定的ExpectedValue时,就将其value更新为用户指定的DesiredValue。从语义上来看,compare_exchange更像是Compare-And-Swap的另外一种说法。接口参见[compareExchange](/_docs/zh/clients/java-client.md#compareexchange)。
+为了方便使用,Pegasus Java Client还提供了compare_exchange接口:当HashKey的某个SortKey的value按照字节串比较**等于**用户指定的ExpectedValue时,就将其value更新为用户指定的DesiredValue。从语义上来看,compare_exchange更像是Compare-And-Swap的另外一种说法。接口参见[compareExchange](/clients/java-client#compareexchange)。
 
 compare_exchange其实是check_and_set的特化版本:
 * CheckSortKey和SetSortKey相同。
diff --git a/_docs/zh/api/ttl.md b/_docs/zh/api/ttl.md
index 82ca065..e6355b7 100755
--- a/_docs/zh/api/ttl.md
+++ b/_docs/zh/api/ttl.md
@@ -31,26 +31,26 @@
 我们在客户端和Shell工具都提供了设置和查询TTL的接口。
 
 Pegasus Java Client中以下接口可以查询和设置TTL:
-* [ttl](/_docs/zh/clients/java-client.md#ttl):获取指定数据的TTL信息。
-* [set](/_docs/zh/clients/java-client.md#set)和[batchSet](/_docs/zh/clients/java-client.md#batchset):都提供了设置TTL的参数,其中batchSet是在SetItem中设置的。
-* [multiSet](/_docs/zh/clients/java-client.md#multiset)和[batchMultiSet](/_docs/zh/clients/java-client.md#batchmultiset):都提供了设置TTL的参数。
-* [incr](/_docs/zh/clients/java-client.md#batchmultiset):从v1.11.1版本开始,incr接口也提供了修改TTL的功能。
-* [checkAndSet](/_docs/zh/clients/java-client.md#checkandset):在CheckAndSetOptions中提供了设置TTL的参数。
+* [ttl](/clients/java-client#ttl):获取指定数据的TTL信息。
+* [set](/clients/java-client#set)和[batchSet](/clients/java-client#batchset):都提供了设置TTL的参数,其中batchSet是在SetItem中设置的。
+* [multiSet](/clients/java-client#multiset)和[batchMultiSet](/clients/java-client#batchmultiset):都提供了设置TTL的参数。
+* [incr](/clients/java-client#batchmultiset):从v1.11.1版本开始,incr接口也提供了修改TTL的功能。
+* [checkAndSet](/clients/java-client#checkandset):在CheckAndSetOptions中提供了设置TTL的参数。
 
 Shell工具中以下命令可以查询和设置TTL:
-* [ttl](/_docs/zh/tools/shell.md#ttl)命令:获取指定数据的TTL信息。
-* [set](/_docs/zh/tools/shell.md#set)和[multi_set](/_docs/zh/tools/shell.md#multi_set)命令:都提供了设置TTL的参数。
+* [ttl](/overview/shell#ttl)命令:获取指定数据的TTL信息。
+* [set](/overview/shell#set)和[multi_set](/overview/shell#multi_set)命令:都提供了设置TTL的参数。
 
 # 表级TTL
 从v1.11.2版本开始,Pegasus支持表级TTL功能。
 
 实现原理:
-* 用户在[Table环境变量](/_docs/zh/administration/table-env.md)中设置`default_ttl`环境变量。
+* 用户在[Table环境变量](/administration/table-env)中设置`default_ttl`环境变量。
 * MetaServer将环境变量异步地通知到各个ReplicaServer,使该表的每个replica都获取到该环境变量,这个过程大约有几秒到几十秒不等的延迟,但是不会超过一分钟。
 * replica获得环境变量后,解析获得default_ttl配置,并立即开始生效。生效之后:
   * 用户新写入的数据,如果TTL=0(使用默认TTL=0或者显式设置TTL=0),则将数据的实际TTL设置为default_ttl。
   * RocksDB在进行compaction的时候,如果compact输入文件的原数据没有TTL,则将compact输出文件的新数据的TTL设置为default_ttl。这个过程依赖于compaction的触发时机,所以时间点是不确定的。
-  * 如果执行[Manual Compact](/_docs/zh/administration/manual-compact.md),那么所有文件都会经过compaction处理,原来没有TTL的数据都会设置TTL为default_ttl。
+  * 如果执行[Manual Compact](/administration/manual-compact),那么所有文件都会经过compaction处理,原来没有TTL的数据都会设置TTL为default_ttl。
 
 考虑这样的场景:业务方在初期写入数据时没有设置TTL,后来改变需求,希望所有数据都加TTL,并且以前没有设置TTL的数据从现在开始计算TTL,那么就可以通过`表级TTL`加上`Manual Compact`的功能实现这个目的。
 
@@ -64,6 +64,6 @@
 InsertTime = now + TTLRemainingSeconds - TTLSeconds
 ```
 其中:
-* TTLRemainingSeconds:通过[Shell的ttl命令](/_docs/zh/tools/shell.md#ttl)获取。
+* TTLRemainingSeconds:通过[Shell的ttl命令](/overview/shell#ttl)获取。
 * now:执行Shell ttl命令的时间。
 * TTLSeconds:用户知道数据写入时设置的TTL。
diff --git a/_docs/zh/build/compile-by-docker.md b/_docs/zh/build/compile-by-docker.md
index 2d6025e..7077b0f 100755
--- a/_docs/zh/build/compile-by-docker.md
+++ b/_docs/zh/build/compile-by-docker.md
@@ -18,7 +18,7 @@
 
 ## 编译
 
-请先参考[下载文档](/_docs/zh/downloads.md)获取源码到某目录(`/your/local/apache-pegasus-source`)下。随后运行以下命令:
+请先参考[下载文档](/docs/downloads)获取源码到某目录(`/your/local/apache-pegasus-source`)下。随后运行以下命令:
 
 ```sh
 docker run -v /your/local/apache-pegasus-source:/root/pegasus \
@@ -54,4 +54,4 @@
            /bin/bash -c "./run.sh pack_tools"
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/build/compile-from-source.md b/_docs/zh/build/compile-from-source.md
index 63e7ef7..1bec63b 100755
--- a/_docs/zh/build/compile-from-source.md
+++ b/_docs/zh/build/compile-from-source.md
@@ -79,7 +79,7 @@
 
 ## 源码编译
 
-请先参考[下载文档](/_docs/zh/downloads.md)获取源码。
+请先参考[下载文档](/docs/downloads)获取源码。
 
 ```bash
 ./run.sh build -c
@@ -107,4 +107,4 @@
 ./run.sh pack_tools
 ```
 
-编译成功后,推荐先[体验onebox集群](/_overview/zh/onebox.md)。
+编译成功后,推荐先[体验onebox集群](/overview/onebox)。
diff --git a/_docs/zh/clients/cpp-client.md b/_docs/zh/clients/cpp-client.md
index 8abb458..1ad720f 100755
--- a/_docs/zh/clients/cpp-client.md
+++ b/_docs/zh/clients/cpp-client.md
@@ -3,7 +3,7 @@
 ---
 
 # 获取Cpp客户端
-首先需要[编译Pegasus](/_docs/zh/build/compile-from-source.md),编译完成后运行以下命令可以打包生产Cpp客户端库:
+首先需要[编译Pegasus](/overview/compilation),编译完成后运行以下命令可以打包生产Cpp客户端库:
 ```
 ./run.sh pack_client
 ```
@@ -87,7 +87,7 @@
 onebox = @LOCAL_IP@:34601,@LOCAL_IP@:34602,@LOCAL_IP@:34603
 another_cluster = @SOME_IP@:34601,@SOME_IP@:34601,@SOME_IP@:34601
 ```
-配置文件的具体解释,请移步 [配置说明](/_docs/zh/administration/config.md) 。
+配置文件的具体解释,请移步[配置说明](/administration/config)。
 
 # 接口定义
 ## 创建Client实例
diff --git a/_docs/zh/clients/java-client.md b/_docs/zh/clients/java-client.md
index 2e3e46c..450b7a7 100755
--- a/_docs/zh/clients/java-client.md
+++ b/_docs/zh/clients/java-client.md
@@ -13,7 +13,7 @@
 cd pegasus-java-client
 ```
 
-选择所使用的版本并构建,建议使用 [最新的release版本](https://github.com/xiaomi/pegasus-java-client/releases) :
+选择所使用的版本并构建,建议使用[最新的release版本](https://github.com/xiaomi/pegasus-java-client/releases):
 
 ```bash
 git checkout v2.0.0
@@ -67,7 +67,7 @@
 * meta_servers: 必选项,表示Pegasus集群的MetaServer地址列表,用于定位集群的位置。  
 * operation_timeout: 可选项,表示各操作的默认超时时间,单位毫秒,默认值为1000。接口中每个操作一般都可以指定单独的超时时间,当指定为0时,使用该默认超时时间。
 * async_workers:可选项,后台工作线程数,内部实际是Netty NIO处理客户端和replica_server之间RPC的线程,默认:4
-* enable_perf_counter:可选项,是否开启性能指标监控数据,如果开启则客户端会周期性的上报监控数据,目前仅支持 [Falcon](http://open-falcon.org/) ,默认:true(2.0.0以前默认为false)
+* enable_perf_counter:可选项,是否开启性能指标监控数据,如果开启则客户端会周期性的上报监控数据,目前仅支持[Falcon](http://open-falcon.org/),默认:true(2.0.0以前默认为false)
 * perf_counter_tags:可选项,falcon监控数据标签,如果开启监控,建议设置易于区分不同业务的标签名字。默认:空
 * push_counter_interval_secs:可选值,falcon监控数据上报间隔,默认:10s
 * meta_query_timeout: 可选项,与MetaServer建立连接的超时时间,一般首次建立连接将需要更多的时间,用户可以根据实际场景配置该参数,以降低服务首次启动后的请求超时问题。连接默认值:5000ms(2.0.0以前没有该参数,默认等于operation_timeout)
@@ -98,7 +98,7 @@
 * metaServers:必选项,meta_servers地址,默认:127.0.0.1:34601,127.0.0.1:34602,127.0.0.1:34603
 * operationTimeout:可选项,客户端请求的超时阈值,默认:1000ms
 * asyncWorkers:可选项,后台工作线程数,内部实际是Netty NIO处理客户端和replica_server之间RPC的线程,默认:4
-* enablePerfCounter:可选项,是否开启性能指标监控数据,如果开启则客户端会周期性的上报监控数据,目前仅支持 [Falcon](http://open-falcon.org/) ,默认:false
+* enablePerfCounter:可选项,是否开启性能指标监控数据,如果开启则客户端会周期性的上报监控数据,目前仅支持[Falcon](http://open-falcon.org/),默认:false
 * falconPerfCounterTags:可选项,falcon监控数据标签,如果开启监控,建议设置易于区分不同业务的标签名字。默认:空
 * falconPushInterval:可选项,falcon监控数据上报间隔,默认:10s
 * metaQueryTimeout: 可选项,与MetaServer建立连接的超时时间,一般首次建立连接将需要更多的时间,用户可以根据实际场景配置该参数,以降低服务首次启动后的请求超时问题。连接默认值:5000ms(2.0.0以前没有该参数,默认等于operation_timeout)
@@ -123,18 +123,18 @@
 
 Java客户端的类都在```com.xiaomi.infra.pegasus.client```包下面,主要提供了三个类:
 
-| 类名                     | 功能                                     |
-|------------------------|----------------------------------------|
-| PegasusClientFactory   | Client工厂类,用于创建Client实例                 |
+| 类名                   | 功能                                                       |
+| ---------------------- | ---------------------------------------------------------- |
+| PegasusClientFactory   | Client工厂类,用于创建Client实例                           |
 | PegasusClientInterface | Client接口类,封装了各种**同步API**,也可用于创建Table实例 |
-| PegasusTableInterface  | Table接口类,封装了存取单个Table数据的**同步和异步API**   |
+| PegasusTableInterface  | Table接口类,封装了存取单个Table数据的**同步和异步API**    |
 
 用户可以选择使用Client接口(PegasusClientInterface)或者是Table接(PegasusTableInterface)存取数据,区别如下:
 
 * Client接口直接在参数中指定表名,省去了打开表的动作,使用更便捷。
 * Table接口同时支持**同步和异步API**,而Client接口只支持**同步API**。
 * Table接口可以为每个操作设置单独的超时,而Client接口无法单独指定超时,只能使用配置文件中的默认超时。
-* Table接口在2.0.0中增加了backupRequestDelayMs参数,可以开启backup-request功能,以提高读性能,详情参见:[Backup-Request](/_docs/zh/administration/backup-request.md)
+* Table接口在2.0.0中增加了backupRequestDelayMs参数,可以开启backup-request功能,以提高读性能,详情参见:[Backup-Request](/administration/backup-request)
 * Table接口的超时更准确,而Client接口在首次读写请求时可能需要在内部初始化Table对象,所以首次读写的超时可能不太准确。
 * 推荐用户首选Table接口。
 
@@ -793,7 +793,7 @@
 * 注意:该方法不是原子的,有可能出现部分成功部分失败的情况。
 
 ### incr
-单行原子增(减)操作。详细说明参见[单行原子操作](/_docs/zh/api/single-atomic.md#原子增减)。
+单行原子增(减)操作。详细说明参见[单行原子操作](/api/single-atomic#原子增减)。
 
 该操作先将key所指向的value的字节串转换为int64类型(实现上类似于Java的[Long.parseLong()](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#parseLong(java.lang.String))函数),然后加上increment,将结果转换为字节串设置为新值。
 
@@ -853,7 +853,7 @@
    * 如果参数ttlSeconds < -1,则抛出异常。
 
 ### checkAndSet
-单HashKey数据的原子CAS操作(可以理解为**单行原子操作**)。详细说明参见[单行原子操作](/_docs/zh/api/single-atomic.md#CAS操作)。
+单HashKey数据的原子CAS操作(可以理解为**单行原子操作**)。详细说明参见[单行原子操作](/api/single-atomic#cas操作)。
 
 该操作先对某个SortKey(称之为CheckSortKey)的value做条件检查:
   * 如果检查的条件满足,则将另一个SortKey(称之为SetSortKey)的value设置为新值。
@@ -1021,7 +1021,7 @@
   * CheckSortKey和SetSortKey相同。
   * CheckType为CT_VALUE_BYTES_EQUAL。
 
-该方法语义就是:如果SortKey对应的value存在且等于期望的值,则将其设置为新值。详细说明参见[单行原子操作](/_docs/zh/api/single-atomic.md#CAS操作) 。
+该方法语义就是:如果SortKey对应的value存在且等于期望的值,则将其设置为新值。详细说明参见[单行原子操作](/api/single-atomic#cas操作)。
 
 该方法与C++库中常见的[atomic_compare_exchange](https://en.cppreference.com/w/cpp/atomic/atomic_compare_exchange)语义基本保持一致。
 
@@ -2056,7 +2056,7 @@
 
 ### ERR_BUSY
 服务端流控达到限制。原因是:
-* 集群服务端对表设置了[表级写流量控制](/_docs/zh/administration/throttling.md#服务端流控) 。
+* 集群服务端对表设置了[表级写流量控制](/administration/throttling#服务端流控)。
 * 此时该表的瞬时流量(在这1秒内的写入操作数)达到了阈值,触发了reject流控操作,返回`ERR_BUSY`错误码。
 
 # 最佳实践
@@ -2241,8 +2241,8 @@
 原料:
 * 业务集群:user_cluster,meta配置地址为`${user_cluster_meta_list}`,其中用户表为user_table。
 * 测试集群:test_cluster,meta配置地址为`${test_cluster_meta_list}`。
-* [Shell工具](/_docs/zh/tools/shell.md) :使用1.11.3及以上版本;修改配置文件`src/shell/config.ini`,添加访问test_cluster集群的配置项。
-* Java客户端:使用1.11.4及以上版本;修改配置文件`pegasus.properties`,设置`meta_servers = ${test_cluster_meta_list}`。
+* [Shell工具](/overview/shell):使用1.11.3及以上版本;修改配置文件`src/shell/config.ini`,添加访问test_cluster集群的配置项。
+* [Java客户端工具](#java客户端工具):使用1.11.4及以上版本;修改配置文件`pegasus.properties`,设置`meta_servers = ${test_cluster_meta_list}`。
 
 步骤:
 * 使用Shell工具的create命令,在test_cluster集群中新建测试表user_table_no_compress和user_table_zstd_compress:
diff --git a/_docs/zh/clients/scala-client.md b/_docs/zh/clients/scala-client.md
index 035482b..e5762bd 100755
--- a/_docs/zh/clients/scala-client.md
+++ b/_docs/zh/clients/scala-client.md
@@ -10,7 +10,7 @@
 git clone https://github.com/XiaoMi/pegasus-scala-client.git
 cd pegasus-scala-client
 ```
-选择所使用的版本并构建,建议使用master版本。同时注意,scala客户端构建依赖[Java客户端](https://github.com/XiaoMi/pegasus-java-client),请参考 [获取Java客户端](/_docs/zh/clients/java-client.md#获取Java客户端) 在项目中添加Java依赖。你可以打包成Jar包进行使用:
+选择所使用的版本并构建,建议使用master版本。同时注意,scala客户端构建依赖[Java客户端](https://github.com/XiaoMi/pegasus-java-client),请参考[获取Java客户端](/clients/java-client#获取java客户端)在项目中添加Java依赖。你可以打包成Jar包进行使用:
 ```bash
 sbt package
 ```
@@ -50,7 +50,7 @@
 
 ## 获取实例
 通过指定server配置信息获取实例,Scala提供两种获取实例的接口:  
-**1、文件路径作为配置参数:**  参见 [Java客户端文件配置](/_docs/zh/clients/java-client.md#文件配置)  
+**1、文件路径作为配置参数:**  参见[Java客户端文件配置](/clients/java-client#配置文件)  
 ```scala
 def createClient(configPath: String): ScalaPegasusClient
 ```
@@ -83,12 +83,12 @@
 # 接口定义
 scala的客户端类地址为:`com.xiaomi.infra.pegasus.scalaclient`,主要包括以下四个类:
 
-| 类名                        | 功能                                   |
-|---------------------------|--------------------------------------|
-| ScalaPegasusClientFactory | Client工厂类,用于创建Client实例               |
+| 类名                      | 功能                                                   |
+| ------------------------- | ------------------------------------------------------ |
+| ScalaPegasusClientFactory | Client工厂类,用于创建Client实例                       |
 | ScalaPegasusClient        | Client类,封装了各种**同步API**,也可用于创建Table实例 |
-| ScalaPegasusTable         | Table类,封装了操作单个Table数据的**同步API**      |
-| ScalaPegasusAsyncTable    | Table类,封装了操作单个Table数据的**异步API**      |
+| ScalaPegasusTable         | Table类,封装了操作单个Table数据的**同步API**          |
+| ScalaPegasusAsyncTable    | Table类,封装了操作单个Table数据的**异步API**          |
 
 用户可以选择使用Client类(ScalaPegasusClient)或者是Table类(ScalaPegasusTable或者ScalaPegasusAsyncTable)存取数据,区别如下:
   * Client类直接在参数中指定表名,省去了打开表的动作,使用更便捷。
@@ -117,7 +117,7 @@
 导入依赖,目前接受的自动类型转换包括`String`、`Boolean`、`Int`、`Long`、`Short`、`Double`,这些类型可自动转换为`Array[Byte]`。
 ### API功能
 #### exists
-判断key是否存在,参见 [Java客户端文档#exist](/_docs/zh/clients/java-client.md#exist)
+判断key是否存在,参见[Java客户端文档#exist](/clients/java-client#exist)
 ```scala
 def exists[H, S](table: String, hashKey: H, sortKey: S)
 ```
@@ -126,7 +126,7 @@
 sortKey:通常为`String`类型  
 return: 返回是否存在,`boolean`类型
 #### sortKeyCount
-获取一个hashkey下的sortkey值,参见 [Java客户端文档#sortKeyCount](/_docs/zh/clients/java-client.md#sortkeycount)
+获取一个hashkey下的sortkey值,参见[Java客户端文档#sortKeyCount](/clients/java-client#sortkeycount)
 ```scala
 def sortKeyCount[H](table: String, hashKey: H)
 ```
@@ -134,7 +134,7 @@
 hashKey:通常为`String`类型  
 return:返回sortKeys个数,`long`类型
 #### get
-获取一条数据,参见[Java客户端文档#get](/_docs/zh/clients/java-client.md#get)
+获取一条数据,参见[Java客户端文档#get](/clients/java-client#get)
 ```scala
 def get[H, S](table: String, hashKey: H, sortKey: S)
 ```
@@ -143,7 +143,7 @@
 sortKey:通常为`String`类型  
 return:返回获取值,`Array[Byte]`类型,你可以使用`as[String]`转换为`String`类型  
 #### batchGet
-读取一批数据,对get函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常。如果抛出了异常,则values中的结果是未定义的,参见[Java客户端文档#batchGet](/_docs/zh/clients/java-client.md#batchget)
+读取一批数据,对get函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常。如果抛出了异常,则values中的结果是未定义的,参见[Java客户端文档#batchGet](/clients/java-client#batchget)
 ```scala
 def batchGet[H, S](table: String, keys: List[PegasusKey[H, S]])
 ```
@@ -151,7 +151,7 @@
 keys:PegasusKey列表,由hashKey和SortKey组成  
 return:返回获取值列表,`PegasusResultList`类型
 #### batchGet2
-读取一批数据,对get函数的批量封装。该函数并发地向server发送异步请求,但与上面batchGet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchGet2](/_docs/zh/clients/java-client.md#batchget)
+读取一批数据,对get函数的批量封装。该函数并发地向server发送异步请求,但与上面batchGet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchGet2](/clients/java-client#batchget)
 ```scala
 def batchGet2[H, S](table: String, keys: Seq[PegasusKey[H, S]])
 ```
@@ -165,7 +165,7 @@
                         List<byte[]> sortKeys, int maxFetchCount, 
                         int maxFetchSize, List<Pair<byte[], byte[]>> values) throws PException;
 ```
-支持最大数据量`maxFetchCount`和最大数据大小`maxFetchSize`的参数设置,参见[Java客户端文档#multiGet](/_docs/zh/clients/java-client.md#multiget)
+支持最大数据量`maxFetchCount`和最大数据大小`maxFetchSize`的参数设置,参见[Java客户端文档#multiGet](/clients/java-client#multiget)
 ```scala
 def multiGet[H, S](table: String, hashKey: H, sortKeys: Seq[S],
             maxFetchCount: Int = 100, maxFetchSize: Int = 1000000)
@@ -184,7 +184,7 @@
                     int maxFetchCount, int maxFetchSize,
                     List<Pair<byte[], byte[]>> values) throws PException;
 ```
-可以支持SortKey的范围查询和条件过滤,只读取满足特定条件的数据,参见[Java客户端文档#multiGet](/_docs/zh/clients/java-client.md#multiget)
+可以支持SortKey的范围查询和条件过滤,只读取满足特定条件的数据,参见[Java客户端文档#multiGet](/clients/java-client#multiget)
 ```scala
 def multiGetRange[H, S](hashKey: H, startSortKey: S, stopSortKey: S, 
                         options: Options.MultiGet,
@@ -201,7 +201,7 @@
 timeout:获取数据超时时间,默认为0,表示使用配置文件中的数值  
 return:返回获取值列表,`convertMultiGetResult`类型
 #### batchMultiGet
-对multiGet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常。如果抛出了异常,则values中的结果是未定义的,参见[Java客户端文档#batchMultiGet](/_docs/zh/clients/java-client.md#batchmultiget)
+对multiGet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常。如果抛出了异常,则values中的结果是未定义的,参见[Java客户端文档#batchMultiGet](/clients/java-client#batchmultiget)
 ```scala
 def batchMultiGet[H, S](keys: Seq[(H, Seq[S])], timeout: Duration = 0 milli)
 ```
@@ -209,7 +209,7 @@
 timeout:获取数据超时时间,默认为0,表示使用配置文件中的数值  
 return:返回获取值列表,`List`类型  
 #### batchMultiGet2
-对multiGet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchMultiGet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchMultiGet2](/_docs/zh/clients/java-client.md#batchmultiget2)
+对multiGet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchMultiGet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchMultiGet2](/clients/java-client#batchmultiget2)
 ```scala
 def batchMultiGet2[H, S](keys: Seq[(H, Seq[S])], timeout: Duration = 0 milli)
 ```
@@ -228,7 +228,7 @@
 timeout:获取数据超时时间,默认为0,表示使用配置文件中的数值  
 return:无返回值  
 #### batchSet
-写一批数据,对set函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchSet](/_docs/zh/clients/java-client.md#batchset)
+写一批数据,对set函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchSet](/clients/java-client#batchset)
 ```scala
 def batchSet[H, S, V](table: String, items: Seq[SetItem[H, S, V]])
 ```
@@ -236,7 +236,7 @@
 items:写入值列表,由hashKey、sortKey、value组成  
 return:请求成功的个数(该方法不是原子的,有可能出现部分成功部分失败的情况,用户可以选择只使用成功的结果)
 #### batchSet2
-对set函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchSet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchSet2](/_docs/zh/clients/java-client.md#batchset2)
+对set函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchSet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchSet2](/clients/java-client#batchset2)
 #### multiSet
 Java client有两种接口,提供写同一HashKey下的多行数据,这里封装的是:
 ```java
@@ -254,7 +254,7 @@
 ttl:写入值保留时间,默认为0,表示永久保留  
 return:无返回值
 #### batchMultitSet
-对multiSet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchMultiSet](/_docs/zh/clients/java-client.md#batchmultiset)
+对multiSet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchMultiSet](/clients/java-client#batchmultiset)
 ```scala
 def batchMultitSet[H, S, V](table: String, items: Seq[HashKeyData[H, S, V]], ttl: Duration = 0 second)
 ```
@@ -263,7 +263,7 @@
 ttl:写入值保留时间,默认为0,表示永久保留  
 return:请求成功的个数(该方法不是原子的,有可能出现部分成功部分失败的情况,用户可以选择只使用成功的结果)
 #### batchMultitSet2
-对multiSet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchMultiSet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchMultitSet2](/_docs/zh/clients/java-client.md#batchmultiset2)
+对multiSet函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchMultiSet不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchMultitSet2](/clients/java-client#batchmultiset2)
 ```scala
 def batchMultiSet2[H, S, V](table: String, items: Seq[HashKeyData[H, S, V]], ttl: Duration = 0 second)
 ```
@@ -272,7 +272,7 @@
 ttl:写入值保留时间,默认为0,表示永久保留  
 return:请求成功的个数(该方法不是原子的,有可能出现部分成功部分失败的情况,用户可以选择只使用成功的结果)
 #### del
-删除单行数据,参见[Java客户端文档#del](/_docs/zh/clients/java-client.md#del)
+删除单行数据,参见[Java客户端文档#del](/clients/java-client#del)
 ```scala
 def del[H, S](table: String, hashKey: H, sortKey: S)
 ```
@@ -281,7 +281,7 @@
 sortkey:通常为`String`类型  
 return:无返回值  
 #### batchDel
-删除一批数据,对del函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchDel](/_docs/zh/clients/java-client.md#batchdel)
+删除一批数据,对del函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchDel](/clients/java-client#batchdel)
 ```scala
 batchDel[H, S](table: String, keys: Seq[PegasusKey[H, S]])
 ```
@@ -289,12 +289,12 @@
 keys:键值列表,由hashKey和sortKey组成  
 return:请求成功的个数(该方法不是原子的,有可能出现部分成功部分失败的情况,用户可以选择只使用成功的结果)
 #### batchDel2
-对del函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchDel不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchDel2](/_docs/zh/clients/java-client.md#batchdel2)
+对del函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchDel不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchDel2](/clients/java-client#batchdel2)
 ```scala
 def batchDel2[H, S](table: String, keys: Seq[PegasusKey[H, S]])
 ```
 #### multiDel
-删同一HashKey下的多行数据,参见[Java客户端文档#multiDel](/_docs/zh/clients/java-client.md#multidel)
+删同一HashKey下的多行数据,参见[Java客户端文档#multiDel](/clients/java-client#multidel)
 ```scala
 def multiDel[H, S](table: String, hashKey: H, sortKeys: Seq[S])
 ```
@@ -303,7 +303,7 @@
 sortKeys:sortKey列表  
 return:无返回值  
 #### batchMultiDel
-对multiDel函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchMultiDel](/_docs/zh/clients/java-client.md#batchmultidel)
+对multiDel函数的批量封装。该函数并发地向server发送异步请求,并等待结果。如果有任意一个请求失败,就提前终止并抛出异常,参见[Java客户端文档#batchMultiDel](/clients/java-client#batchmultidel)
 ```scala
 def batchMultiDel[H, S](table: String, keys: Seq[(H, Seq[S])])
 ```
@@ -311,7 +311,7 @@
 keys:键列表,由hashKey、sortKeys组成,如`Seq(("hashKey1",(sortKey1,sortKey2),("hashKey2",(sortKey3,sortKey4))`  
 return:无返回值
 #### batchMultiDel2
-对del函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchMultiDel不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchMultiDel2](/_docs/zh/clients/java-client.md#batchmultidel2)
+对del函数的批量封装。该函数并发地向server发送异步请求,并等待结果。但与上面batchMultiDel不同的是,无论请求成功还是失败,它都会等待所有请求结束,参见[Java客户端文档#batchMultiDel2](/clients/java-client#batchmultidel2)
 ```scala
 def batchMultiDel2[H, S](table: String, keys: Seq[(H, Seq[S])])
 ```
@@ -319,7 +319,7 @@
 keys:键列表,由hashKey、sortKeys组成,如`Seq(("hashKey1",(sortKey1,sortKey2),("hashKey2",(sortKey3,sortKey4))`  
 return:无返回值
 #### ttl
-获取单行数据的TTL时间。TTL表示Time To Live,表示该数据还能存活多久。如果超过存活时间,数据就读不到了,参见[Java客户端文档#ttl](/_docs/zh/clients/java-client.md#ttl)
+获取单行数据的TTL时间。TTL表示Time To Live,表示该数据还能存活多久。如果超过存活时间,数据就读不到了,参见[Java客户端文档#ttl](/clients/java-client#ttl)
 ```scala
 def ttl[H, S](table: String, hashKey: H, sortKey: S)
 ```
@@ -328,7 +328,7 @@
 sortKeys:通常为`String`类型  
 return:TTL时间,单位为秒。如果该数据没有设置TTL,返回-1;如果该数据不存在,返回-2
 #### incr
-单行原子增(减)操作,详细说明参见[单行原子操作](/_docs/zh/api/single-atomic.md),该操作先将key所指向的value的字节串转换为int64类型(实现上类似于Java的Long.parseLong()函数),然后加上increment,将结果转换为字节串设置为新值。当参数increment为正数时,即原子加;当参数increment为负数时,即原子减,参见[Java客户端文档#incr](/_docs/zh/clients/java-client.md#incr)。
+单行原子增(减)操作,详细说明参见[单行原子操作](/api/single-atomic),该操作先将key所指向的value的字节串转换为int64类型(实现上类似于Java的Long.parseLong()函数),然后加上increment,将结果转换为字节串设置为新值。当参数increment为正数时,即原子加;当参数increment为负数时,即原子减,参见[Java客户端文档#incr](/clients/java-client#incr)。
 ```scala
 def incr[H, S](table: String, hashKey: H, sortKey: S, increment: Long, ttl: Duration = 0 milli)
 ```
@@ -339,9 +339,9 @@
 ttl:值保留时间,默认为0,表示永久保留  
 return:操作成功后的新值
 ## ScalaPegasusTable接口
-ScalaPegasusTable接口提供的方法均为同步API,`ScalaPegasusClient`接口即默认封装该接口,详细API信息参见[ScalaPegasusClient接口](#ScalaPegasusClient接口)
+ScalaPegasusTable接口提供的方法均为同步API,`ScalaPegasusClient`接口即默认封装该接口,详细API信息参见[ScalaPegasusClient接口](#scalapegasusclient接口)
 ## ScalaPegasusAsyncTable
-ScalaPegasusAsyncTable接口提供的方法均为异步API,封装了java client的异步接口。对应API功能可参考[ScalaPegasusClient接口](#ScalaPegasusClient接口)和[Java客户端文档#PegasusTableInterface接口](/_docs/zh/clients/java-client.md#PegasusTableInterface接口),接口封装形式如:
+ScalaPegasusAsyncTable接口提供的方法均为异步API,封装了java client的异步接口。对应API功能可参考[ScalaPegasusClient接口](#scalapegasusclient接口)和[Java客户端文档#PegasusTableInterface接口](/clients/java-client#pegasustableinterface接口),接口封装形式如:
 ```scala
 @throws[PException]
     def multiGet[H, S](hashKey: H, sortKeys: Seq[S], maxFetchCount: Int = 100, maxFetchSize: Int = 1000000, timeout: Duration = 0 milli)
diff --git a/_docs/zh/docs.md b/_docs/zh/docs.md
index 18bb01b..4687fee 100644
--- a/_docs/zh/docs.md
+++ b/_docs/zh/docs.md
@@ -9,6 +9,6 @@
 
 文档分类:
 
-- [{{ site.data.translate['title_clients'] }}](/_docs/zh/clients)
-- [{{ site.data.translate['title_api'] }}](/_docs/zh/api)
-- [{{ site.data.translate['title_administration'] }}](/_docs/zh/administration)
+- [{{ site.data.translate['title_clients'] }}](/clients)
+- [{{ site.data.translate['title_api'] }}](/api)
+- [{{ site.data.translate['title_administration'] }}](/administration)
diff --git a/_docs/zh/downloads.md b/_docs/zh/downloads.md
index bed72c5..2511544 100644
--- a/_docs/zh/downloads.md
+++ b/_docs/zh/downloads.md
@@ -24,11 +24,11 @@
 [2.3.0-sha]: https://downloads.apache.org/incubator/pegasus/2.3.0/apache-pegasus-2.3.0-incubating-src.zip.sha512
 [2.3.0-rn]: https://cwiki.apache.org/confluence/display/PEGASUS/Apache+Pegasus+2.3.0+Release+Notes
 
-| Name                 | Package             | Signature        | Checksum            | Release Notes          |
-|----------------------|---------------------|------------------|---------------------|------------------------|
-| Apache Pegasus 2.1.0 | [Source][2.1.0-src] | [asc][2.1.0-asc] | [sha512][2.1.0-sha] | [2020-11-30][2.1.0-rn] |
-| Apache Pegasus 2.2.0 | [Source][2.2.0-src] | [asc][2.2.0-asc] | [sha512][2.2.0-sha] | [2021-06-27][2.2.0-rn] |
-| Apache Pegasus 2.3.0 | [Source][2.3.0-src] | [asc][2.3.0-asc] | [sha512][2.3.0-sha] | [2021-11-26][2.3.0-rn] |
+Name | Package | Signature | Checksum | Release Notes |
+---|---|---|---|---|
+Apache Pegasus 2.1.0 | [Source][2.1.0-src] | [asc][2.1.0-asc] | [sha512][2.1.0-sha] | [2020-11-30][2.1.0-rn]
+Apache Pegasus 2.2.0 | [Source][2.2.0-src] | [asc][2.2.0-asc] | [sha512][2.2.0-sha] | [2021-06-27][2.2.0-rn]
+Apache Pegasus 2.3.0 | [Source][2.3.0-src] | [asc][2.3.0-asc] | [sha512][2.3.0-sha] | [2021-11-26][2.3.0-rn]
 
 在 2.1.0 版本以前,Pegasus 并未遵循 ASF 发版流程,这里我们仍然提供老版本下载渠道,方便升级:
 
@@ -47,17 +47,17 @@
 [1.9.0-src]: https://github.com/apache/incubator-pegasus/releases/download/v1.9.0/apache-pegasus-1.9.0-incubating-src.zip
 [1.9.0-rn]: https://github.com/apache/incubator-pegasus/releases/tag/v1.9.0
 
-| Name                  | Package              | Release Notes           |
-|-----------------------|----------------------|-------------------------|
- | Apache Pegasus 2.0.0  | [Source][2.0.0-src]  | [2020-6-11][2.0.0-rn]   |
- | Apache Pegasus 1.12.3 | [Source][1.12.3-src] | [2020-4-23][1.12.3-rn]  |
- | Apache Pegasus 1.12.0 | [Source][1.12.0-src] | [2019-11-19][1.12.0-rn] |
- | Apache Pegasus 1.11.6 | [Source][1.11.6-src] | [2019-8-23][1.11.6-rn]  |
- | Apache Pegasus 1.11.3 | [Source][1.11.3-src] | [2019-2-27][1.11.3-rn]  |
- | Apache Pegasus 1.10.0 | [Source][1.10.0-src] | [2018-6-19][1.10.0-rn]  |
- | Apache Pegasus 1.9.0  | [Source][1.9.0-src]  | [2018-6-20][1.9.0-rn]   |
+Name | Package | Release Notes
+---|---|---
+Apache Pegasus 2.0.0 | [Source][2.0.0-src] | [2020-6-11][2.0.0-rn]
+Apache Pegasus 1.12.3 | [Source][1.12.3-src] | [2020-4-23][1.12.3-rn]
+Apache Pegasus 1.12.0 | [Source][1.12.0-src] | [2019-11-19][1.12.0-rn]
+Apache Pegasus 1.11.6 | [Source][1.11.6-src] | [2019-8-23][1.11.6-rn]
+Apache Pegasus 1.11.3 | [Source][1.11.3-src] | [2019-2-27][1.11.3-rn]
+Apache Pegasus 1.10.0 | [Source][1.10.0-src] | [2018-6-19][1.10.0-rn]
+Apache Pegasus 1.9.0 | [Source][1.9.0-src] | [2018-6-20][1.9.0-rn]
 
-上述各版本均可找到对应编译环境的镜像:<https://hub.docker.com/r/apachepegasus/build-env/tags>,请参考 [{{site.data.translate['title_compile-by-docker'}}](/_docs/zh/build/compile-by-docker.md) 完成编译。
+上述各版本均可找到对应编译环境的镜像:<https://hub.docker.com/r/apachepegasus/build-env/tags>,请参考 [{{site.data.translate['title_compile-by-docker'}}](/docs/build/compile-by-docker/) 完成编译。
 
 ```
 docker pull apachepegasus/build-env:{VERSION}-{OS}
diff --git a/_docs/zh/tools/shell.md b/_docs/zh/tools/shell.md
index cbc399c..1b9ceec 100755
--- a/_docs/zh/tools/shell.md
+++ b/_docs/zh/tools/shell.md
@@ -6,7 +6,7 @@
 Pegasus提供了Shell工具,用于查看集群相关信息,创建/删除表,操作数据等。
 
 # 工具获取
-在成功[编译Pegasus](/_docs/zh/build/compile-from-source.md) 后,在pegasus目录下启动Shell工具:
+在成功[编译Pegasus](compilation)后,在pegasus目录下启动Shell工具:
 ```bash
 ./run.sh shell
 ```
@@ -188,11 +188,11 @@
 
 ## 基本命令
 
-| 子命令     | 功能                                |
-|---------|-----------------------------------|
-| help    | 获取帮助信息                            |
-| version | 获取Shell工具的版本信息                    |
-| exit    | 退出shell工具,等同于输入"Ctrl-C"或者"Ctrl-D" |
+| 子命令 | 功能 |
+| ----- | ----- |
+| help | 获取帮助信息 |
+| version | 获取Shell工具的版本信息 |
+| exit | 退出shell工具,等同于输入"Ctrl-C"或者"Ctrl-D" |
 
 ### help
 获取帮助信息。
@@ -205,12 +205,12 @@
 
 ## 全局属性
 
-| 子命令        | 功能                                                    |
-|------------|-------------------------------------------------------|
-| cc         | change cluster,改变当前使用的集群                              |
-| use        | 指定当前使用的表,有的子命令在使用前需要先指定表,譬如数据操作类命令                    |
+| 子命令 | 功能 |
+| ----- | ----- |
+| cc | change cluster,改变当前使用的集群 |
+| use | 指定当前使用的表,有的子命令在使用前需要先指定表,譬如数据操作类命令 |
 | escape_all | 输出字节类数据时,选择将"所有字符"转换为十六进制编码还是仅将"不可见字符"转换为十六进制编码,默认为后者 |
-| timeout    | 数据操作的默认超时时间                                           |
+| timeout | 数据操作的默认超时时间 |
 
 ### cc
 change cluster,改变当前使用的集群。
@@ -278,16 +278,16 @@
 
 ## 节点管理
 
-| 子命令            | 功能                                                |
-|----------------|---------------------------------------------------|
-| cluster_info   | 获取集群基本信息                                          |
-| nodes          | 获取节点列表,可加```-d```选项获取各节点的负载情况                     |
-| server_info    | 各节点的基本信息,主要是server版本、节点启动时间                       |
-| server_stat    | 各节点的统计信息,包含一些关键的统计数据,譬如get和put操作的QPS和延迟、内存和存储使用情况 |
-| remote_command | 向节点发送**远程命令**,以执行某些特殊操作                           |
-| flush_log      | 向节点发送**远程命令**,将最近缓冲区中的日志数据刷出到日志文件中                |
-| disk_replica   | 各节点的副本在磁盘上的分布                                     |
-| disk_capacity  | 各节点的磁盘空间占用                                        |
+| 子命令 | 功能 |
+| ----- | ----- |
+| cluster_info | 获取集群基本信息 |
+| nodes | 获取节点列表,可加```-d```选项获取各节点的负载情况 |
+| server_info | 各节点的基本信息,主要是server版本、节点启动时间 |
+| server_stat | 各节点的统计信息,包含一些关键的统计数据,譬如get和put操作的QPS和延迟、内存和存储使用情况 |
+| remote_command | 向节点发送**远程命令**,以执行某些特殊操作 |
+| flush_log | 向节点发送**远程命令**,将最近缓冲区中的日志数据刷出到日志文件中 |
+| disk_replica | 各节点的副本在磁盘上的分布 |
+| disk_capacity | 各节点的磁盘空间占用 |
 
 ### cluster_info
 获取集群基本信息。
@@ -296,7 +296,7 @@
 * 集群信息主要主要包含:
   * meta_server、zookeeper的节点信息。
   * meta_function_level:负载均衡策略。
-  * balance_operation_count:负载均衡操作统计,包括move_pri、move_pri、copy_sec、total。负载均衡信息参见[负载均衡](/_docs/zh/administration/rebalance.md)。
+  * balance_operation_count:负载均衡操作统计,包括move_pri、move_pri、copy_sec、total。负载均衡信息参见[负载均衡](/administration/rebalance)。
   * primary_replica_count_stddev:负载均衡衡量指标。
   * total_replica_count_stddev:负载均衡衡量指标。
 
@@ -364,7 +364,7 @@
 
 说明:
 * `-t`、`-l`选项:用于选择特定目标机器,参见[server_info](#server_info)说明。
-* 远程命令详细信息,参见[远程命令](/_docs/zh/administration/remote-commands.md)。
+* 远程命令详细信息,参见[远程命令](/administration/remote-commands)。
 
 示例:
 ```
@@ -427,19 +427,19 @@
 
 ## 表管理
 
-| 子命令            | 功能                                                                                          |
-|----------------|---------------------------------------------------------------------------------------------|
-| ls             | 获取所有表的列表,可加```-d```选项获取各表的健康状况,可加```-a```选项包含已删除表的信息                                        |
-| app            | 获取某个表的信息,可加```-d```选项获取详细信息,包括各partition的分布情况、健康状况                                          |
-| app_stat       | 获取表的读写情况和存储统计信息,可加```-a```选项指定单个表,以获取该表各个partition的详细统计信息                                   |
-| app_disk       | 获取某个表的详细存储信息,可加```-d```选项获取各partition的详细存储信息                                                |
-| create         | 创建表,可加```-p```和```-r```选项指定分片数和副本数,要求分片数是2的指数倍,不指定 -r 则默认副本数为3(推荐值)                         |
-| drop           | 删除表,参见[使用drop命令删除表](/_docs/zh/administration/table-soft-delete.md#使用drop命令删除表)              |
-| recall         | 恢复已删除的表,参见[使用recall命令恢复表](/_docs/zh/administration/table-soft-delete.md#使用recall命令恢复表)      |
-| get_app_envs   | 获取表的环境变量,参见[Table环境变量#get_app_envs](/_docs/zh/administration/table-env.md#get_app_envs)     |
-| set_app_envs   | 设置表的环境变量,参见[Table环境变量#set_app_envs](/_docs/zh/administration/table-env.md#set_app_envs)     |
-| del_app_envs   | 删除表的环境变量,参见[Table环境变量#del_app_envs](/_docs/zh/administration/table-env.md#del_app_envs)     |
-| clear_app_envs | 清理表的环境变量,参见[Table环境变量#clear_app_envs](/_docs/zh/administration/table-env.md#clear_app_envs) |
+| 子命令 | 功能 |
+| ----- | ----- |
+| ls | 获取所有表的列表,可加```-d```选项获取各表的健康状况,可加```-a```选项包含已删除表的信息 |
+| app | 获取某个表的信息,可加```-d```选项获取详细信息,包括各partition的分布情况、健康状况 |
+| app_stat | 获取表的读写情况和存储统计信息,可加```-a```选项指定单个表,以获取该表各个partition的详细统计信息 |
+| app_disk | 获取某个表的详细存储信息,可加```-d```选项获取各partition的详细存储信息 |
+| create | 创建表,可加```-p```和```-r```选项指定分片数和副本数,要求分片数是2的指数倍,不指定 -r 则默认副本数为3(推荐值) |
+| drop | 删除表,参见[使用drop命令删除表](/administration/table-soft-delete#使用drop命令删除表) |
+| recall | 恢复已删除的表,参见[使用recall命令恢复表](/administration/table-soft-delete#使用recall命令恢复表) |
+| get_app_envs | 获取表的环境变量,参见[Table环境变量#get_app_envs](/administration/table-env#get_app_envs) |
+| set_app_envs | 设置表的环境变量,参见[Table环境变量#set_app_envs](/administration/table-env#set_app_envs) |
+| del_app_envs | 删除表的环境变量,参见[Table环境变量#del_app_envs](/administration/table-env#del_app_envs) |
+| clear_app_envs | 清理表的环境变量,参见[Table环境变量#clear_app_envs](/administration/table-env#clear_app_envs) |
 
 ### ls
 获取所有表的列表。
@@ -527,7 +527,7 @@
 说明:
 * `-p`选项:如果指定,则可以设置分片数,要求分片数是2的指数倍。
 * `-r`选项:如果指定,则可以指定副本数,推荐副本数为3。
-* `-e`选项:如果指定,则可是设置环境变量,参见[Table环境变量](/_docs/zh/administration/table-env.md)。
+* `-e`选项:如果指定,则可是设置环境变量,参见[Table环境变量](/administration/table-env)。
 
 示例:
 ```
@@ -543,7 +543,7 @@
 ```
 
 说明:
-* `-r`选项:如果指定,则设置数据的保留时间(删除时间开始计算,单位为秒)。如果不指定,则使用配置文件hold_seconds_for_dropped_app指定的值,默认为7天,参见[Table软删除#使用drop命令删除表](/_docs/zh/administration/table-soft-delete.md#使用drop命令删除表)。
+* `-r`选项:如果指定,则设置数据的保留时间(删除时间开始计算,单位为秒)。如果不指定,则使用配置文件hold_seconds_for_dropped_app指定的值,默认为7天,参见[Table软删除#使用drop命令删除表](/administration/table-soft-delete#使用drop命令删除表)。
 
 示例:
 ```
@@ -561,7 +561,7 @@
 说明:
 * 注意该命令通过app_id进行表恢复。
 * `new_app_name`参数:如果不指定新表名,则会使用原表名,否则使用指定的新表名,如果原表名已存在(删表后新建了同名表),则必须指定另外一个不同的新表名,否则会失败。
-* 详细信息参见[Table软删除#使用recall命令恢复表](/_docs/zh/administration/table-soft-delete.md#使用recall命令恢复表)。
+* 详细信息参见[Table软删除#使用recall命令恢复表](/administration/table-soft-delete#使用recall命令恢复表)。
 
 示例:
 ```
@@ -569,7 +569,7 @@
 ```
 
 ### get_app_envs
-获取表的环境变量,关于环境变量请参见[Table环境变量](/_docs/zh/administration/table-env.md)。
+获取表的环境变量,关于环境变量请参见[Table环境变量](/administration/table-env)。
 
 用法:
 ```
@@ -577,7 +577,7 @@
 ```
 
 说明:
-* 该命令输出当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[get_app_envs](/_docs/zh/administration/table-env.md#get_app_envs)。
+* 该命令输出当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[get_app_envs](/administration/table-env#get_app_envs)。
 
 示例:
 ```
@@ -586,7 +586,7 @@
 ```
 
 ### set_app_envs
-设置表的环境变量,关于环境变量请参见[Table环境变量](/_docs/zh/administration/table-env.md)。
+设置表的环境变量,关于环境变量请参见[Table环境变量](/administration/table-env)。
 
 用法:
 ```
@@ -594,7 +594,7 @@
 ```
 
 说明:
-* 该命令设置当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[set_app_envs](/_docs/zh/administration/table-env.md#set_app_envs)。
+* 该命令设置当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[set_app_envs](/administration/table-env#set_app_envs)。
 
 示例:
 ```
@@ -603,7 +603,7 @@
 ```
 
 ### del_app_envs
-删除表的环境变量,关于环境变量请参见[Table环境变量](/_docs/zh/administration/table-env.md)。
+删除表的环境变量,关于环境变量请参见[Table环境变量](/administration/table-env)。
 
 用法:
 ```
@@ -611,7 +611,7 @@
 ```
 
 说明:
-* 该命令删除当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[del_app_envs](/_docs/zh/administration/table-env.md#del_app_envs)。
+* 该命令删除当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[del_app_envs](/administration/table-env#del_app_envs)。
 
 示例:
 ```
@@ -620,7 +620,7 @@
 ```
 
 ### clear_app_envs
-清理表的环境变量,关于环境变量请参见[Table环境变量](/_docs/zh/administration/table-env.md)。
+清理表的环境变量,关于环境变量请参见[Table环境变量](/administration/table-env)。
 
 用法:
 ```
@@ -628,7 +628,7 @@
 ```
 
 说明:
-* 该命令删除当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[clear_app_envs](/_docs/zh/administration/table-env.md#clear_app_envs)。
+* 该命令删除当前表的环境变量,使用前请首先使用`use [app_name]`选定特定表,参见[clear_app_envs](/administration/table-env#clear_app_envs)。
 * `-a`选项:如果指定,则清理所有的环境变量。
 * `-p`选项:如果指定,则可以清理以特定字符串为前缀的环境变量。
 
@@ -640,29 +640,29 @@
 
 ## 数据操作
 
-| 子命令                | 功能                                                                                                                                                                                               |
-|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| set                | 设置单条数据                                                                                                                                                                                           |
-| multi_set          | 设置同一HashKey下的多条数据                                                                                                                                                                                |
-| get                | 获取单条数据                                                                                                                                                                                           |
-| multi_get          | 通过指定多个SortKey,获取同一HashKey下的多条数据                                                                                                                                                                  |
-| multi_get_range    | 通过指定SortKey的查询范围和过滤条件,获取同一HashKey下的多条数据                                                                                                                                                          |
-| multi_get_sortkeys | 获取同一HashKey下的所有SortKey                                                                                                                                                                           |
-| del                | 删除单条数据                                                                                                                                                                                           |
-| multi_del          | 通过指定多个SortKey,删除同一HashKey下的多条数据                                                                                                                                                                  |
-| multi_del_range    | 通过指定SortKey的查询范围和过滤条件,删除同一HashKey下的多条数据                                                                                                                                                          |
-| incr               | [原子增减操作](/_docs/zh/api/single-atomic.md#原子增减)                                                                                                                                                    |
-| check_and_set      | [原子CAS操作](/_docs/zh/api/single-atomic.md#CAS操作)                                                                                                                                                  |
-| check_and_mutate   | [原子CAS扩展版本](/_docs/zh/clients/java-client.md#checkandmutate)                                                                                                                                     |
-| exist              | 查询某条数据是否存在                                                                                                                                                                                       |
-| count              | 获取同一HashKey下的SortKey的个数                                                                                                                                                                          |
-| ttl                | 查询某条数据的TTL(Time To Live)时间,返回剩余的live时间,单位为秒;返回Infinite表示没有TTL限制                                                                                                                                  |
-| hash               | 计算键值的哈希值                                                                                                                                                                                         |
-| hash_scan          | 逐条扫描同一HashKey下的数据,可指定SortKey的查询范围和过滤条件,结果按照SortKey排序                                                                                                                                             |
-| full_scan          | 对表进行全扫描,可指定HashKey、SortKey和Value的过滤条件,同一HashKey的结果按照SortKey排序,HashKey之间无顺序保证                                                                                                                     |
-| copy_data          | 将一个表的数据逐条插入到另外一个表,源表通过```use```命令指定,目标表通过```-c```和```-a```命令执行,目标表可以在另外一个集群,详细用法参见 [Table迁移#copy_data迁移](/_docs/zh/administration/table-migration.md#copy_data迁移) ,可指定HashKey、SortKey和Value的过滤条件 |
-| clear_data         | 将一个表的数据逐条删除,实际上就是先扫描数据,然后对每一条数据执行删除操作,可指定HashKey、SortKey和Value的过滤条件                                                                                                                              |
-| count_data         | 统计一个表的数据条数,可加```-z```选项统计数据大小,可指定HashKey、SortKey和Value的过滤条件                                                                                                                                      |
+| 子命令 | 功能 |
+| ----- | ----- |
+| set | 设置单条数据 |
+| multi_set | 设置同一HashKey下的多条数据 |
+| get | 获取单条数据 |
+| multi_get | 通过指定多个SortKey,获取同一HashKey下的多条数据 |
+| multi_get_range | 通过指定SortKey的查询范围和过滤条件,获取同一HashKey下的多条数据 |
+| multi_get_sortkeys | 获取同一HashKey下的所有SortKey |
+| del | 删除单条数据 |
+| multi_del | 通过指定多个SortKey,删除同一HashKey下的多条数据 |
+| multi_del_range | 通过指定SortKey的查询范围和过滤条件,删除同一HashKey下的多条数据 |
+| incr | [原子增减操作](/api/single-atomic#原子增减) |
+| check_and_set | [原子CAS操作](/api/single-atomic#cas操作) |
+| check_and_mutate | [原子CAS扩展版本](/clients/java-client#checkandmutate) |
+| exist | 查询某条数据是否存在 |
+| count | 获取同一HashKey下的SortKey的个数 |
+| ttl | 查询某条数据的TTL(Time To Live)时间,返回剩余的live时间,单位为秒;返回Infinite表示没有TTL限制 |
+| hash | 计算键值的哈希值 |
+| hash_scan | 逐条扫描同一HashKey下的数据,可指定SortKey的查询范围和过滤条件,结果按照SortKey排序 |
+| full_scan | 对表进行全扫描,可指定HashKey、SortKey和Value的过滤条件,同一HashKey的结果按照SortKey排序,HashKey之间无顺序保证 |
+| copy_data | 将一个表的数据逐条插入到另外一个表,源表通过```use```命令指定,目标表通过```-c```和```-a```命令执行,目标表可以在另外一个集群,详细用法参见[Table迁移#copy_data迁移](/administration/table-migration#copy_data迁移),可指定HashKey、SortKey和Value的过滤条件 |
+| clear_data | 将一个表的数据逐条删除,实际上就是先扫描数据,然后对每一条数据执行删除操作,可指定HashKey、SortKey和Value的过滤条件 |
+| count_data | 统计一个表的数据条数,可加```-z```选项统计数据大小,可指定HashKey、SortKey和Value的过滤条件 |
 
 ### set
 设置单条数据。
@@ -691,7 +691,7 @@
 ```
 
 说明:
-* sort_key是pegasus定义的一种数据模型,详细信息参见[数据模型](/_overview/zh/data-model.md)。
+* sort_key是pegasus定义的一种数据模型,详细信息参见[数据模型](/overview/data-model)。
 * 不同的sort_key名字必须不同,否则会输出“ERROR: duplicate sort key <sort_key>”。
 
 
@@ -823,7 +823,7 @@
 ```
 
 说明:
-* 操作数increment可以为正数也可以为负数,所以一个incr接口就可以实现原子增或者原子减,详情参照[原子增减](/_docs/zh/api/single-atomic.md#原子增减)。
+* 操作数increment可以为正数也可以为负数,所以一个incr接口就可以实现原子增或者原子减,详情参照[原子增减](/api/single-atomic#原子增减)。
 
 示例:
 ```
@@ -846,7 +846,7 @@
 ```
 
 说明:
-* 对比交换,最初是表示一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。参照[CAS操作](/_docs/zh/api/single-atomic.md#CAS操作)。
+* 对比交换,最初是表示一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。参照[CAS操作](/api/single-atomic#cas操作)。
 
 示例:
 该命令检查hashKey=cloud的数据,若sortKey=90的value存在,则将sortKey=91的value设置为92,且返回sortKey=90的value值。
@@ -856,7 +856,7 @@
 
 
 ### check_and_mutate
-原子CAS扩展版本,参见[原子CAS扩展版本](/_docs/zh/clients/java-client.md#checkandmutate)。
+原子CAS扩展版本,参见[原子CAS扩展版本](/clients/java-client#checkandmutate)。
 
 用法:
 ```
@@ -981,7 +981,7 @@
                       [-i|--no_value]
 ```
 说明:
-* 参数说明参见[hash_scan](#hash_scan)。
+* 参数说明参见[hash_scan](#hashKey_scan)。
 
 实例:
 ```
@@ -1009,7 +1009,7 @@
 ```
 
 说明:
-* 源表通过use命令指定,目标表通过-c和-a命令执行,目标表可以在另外一个集群,详细用法参见[Table迁移#copy_data迁移](/_docs/zh/administration/table-migration.md#copy_data迁移),可指定HashKey、SortKey和Value的过滤条件。
+* 源表通过use命令指定,目标表通过-c和-a命令执行,目标表可以在另外一个集群,详细用法参见[Table迁移#copy_data迁移](/administration/table-migration#copy_data迁移),可指定HashKey、SortKey和Value的过滤条件。
 
 示例:
 ```
@@ -1077,43 +1077,43 @@
 
 ## 负载均衡
 
-| 子命令            | 功能                                                                                            |
-|----------------|-----------------------------------------------------------------------------------------------|
+| 子命令 | 功能 |
+| ----- | ----- |
 | set_meta_level | 设置集群的负载均衡级别,包括stopped、blind、freezed、steady、lively。集群默认为steady,表示不进行自动负载均衡;设置为lively可以开启自动负载均衡 |
-| get_meta_level | 获取集群的负载均衡级别                                                                                   |
-| propose        | 发送partition操作,包括ASSIGN_PRIMARY、ADD_SECONDARY、DOWNGRADE_TO_INACTIVE等                           |
-| balance        | 发送balance操作,包括move_pri、copy_pri、copy_sec等                                                     |
+| get_meta_level | 获取集群的负载均衡级别 |
+| propose | 发送partition操作,包括ASSIGN_PRIMARY、ADD_SECONDARY、DOWNGRADE_TO_INACTIVE等 |
+| balance | 发送balance操作,包括move_pri、copy_pri、copy_sec等 |
 
-关于负载均衡的详细文档,请参考[负载均衡](/_docs/zh/administration/rebalance.md)。
+关于负载均衡的详细文档,请参考[负载均衡](/administration/rebalance)。
 
 
 ## 数据恢复
 
-| 子命令          | 功能                                                                                                       |
-|--------------|----------------------------------------------------------------------------------------------------------|
-| recover      | 启动数据恢复流程,通过向ReplicaServer收集和学习,重新构建Zookeeper上的元数据信息,参见[元数据恢复](/_docs/zh/administration/meta-recovery.md) |
-| ddd_diagnose | DDD自动诊断工具,用于恢复所有备份全部不可用的partition,参见[Replica数据恢复](/_docs/zh/administration/replica-recovery.md)          |
+| 子命令 | 功能 |
+| ----- | ----- |
+| recover | 启动数据恢复流程,通过向ReplicaServer收集和学习,重新构建Zookeeper上的元数据信息,参见[元数据恢复](/administration/meta-recovery) |
+| ddd_diagnose | DDD自动诊断工具,用于恢复所有备份全部不可用的partition,参见[Replica数据恢复](/administration/replica-recovery) |
 
 ## 冷备份管理
 
-| 子命令                   | 功能            |
-|-----------------------|---------------|
-| add_backup_policy     | 增加冷备份策略       |
-| ls_backup_policy      | 查询冷备份策略       |
-| modify_backup_policy  | 修改冷备份策略       |
-| disable_backup_policy | 禁用冷备份策略       |
-| enable_backup_policy  | 启用冷备份策略       |
-| restore_app           | 从冷备份中恢复表      |
-| query_backup_policy   | 查询备份策略和上次备份信息 |
-| query_restore_status  | 查询冷备份恢复进度     |
+| 子命令 | 功能 |
+| ----- | ----- |
+| add_backup_policy | 增加冷备份策略 |
+| ls_backup_policy | 查询冷备份策略 |
+| modify_backup_policy | 修改冷备份策略 |
+| disable_backup_policy | 禁用冷备份策略 |
+| enable_backup_policy | 启用冷备份策略 |
+| restore_app | 从冷备份中恢复表 |
+| query_backup_policy | 查询备份策略和上次备份信息 |
+| query_restore_status | 查询冷备份恢复进度 |
 
-关于冷备份的详细文档,请参考[冷备份](/_docs/zh/administration/cold-backup.md)。
+关于冷备份的详细文档,请参考[冷备份](/administration/cold-backup)。
 
 ## 调试工具
 
-| 子命令       | 功能                                                         |
-|-----------|------------------------------------------------------------|
-| sst_dump  | 使用RocksDB的```sst_dump```工具,将rocksdb的二进制sstable数据转换为可读的文本数据 |
-| mlog_dump | 将Pegasus的二进制commit log数据转换为可读的文本数据                         |
-| local_get | 从本地数据库获取值(原来的调试工具)                                         |
+| 子命令 | 功能 |
+| ----- | ----- |
+| sst_dump | 使用RocksDB的```sst_dump```工具,将rocksdb的二进制sstable数据转换为可读的文本数据 |
+| mlog_dump | 将Pegasus的二进制commit log数据转换为可读的文本数据 |
+| local_get | 从本地数据库获取值(原来的调试工具) |
 
diff --git a/_overview/zh/benchmark.md b/_overview/zh/benchmark.md
index a8138fd..d3c3aa7 100755
--- a/_overview/zh/benchmark.md
+++ b/_overview/zh/benchmark.md
@@ -187,7 +187,7 @@
 
 ### RocksDB限速
 
-Pegasus底层采用RocksDB做存储引擎,当数据写入增多,会触发compaction操作,占用较多磁盘IO,出现较多的毛刺现象。该项测试展示了开启[RocksDB的限速](/_overview/zh/benchmark.md)后,可以降低compaction负载,从而显著的降低毛刺现象。
+Pegasus底层采用RocksDB做存储引擎,当数据写入增多,会触发compaction操作,占用较多磁盘IO,出现较多的毛刺现象。该项测试展示了开启[RocksDB的限速](http://10.232.52.164:4000/overview/benchmark)后,可以降低compaction负载,从而显著的降低毛刺现象。
 
 下图分别展示了无限速、500MB限速、500MB限速同时开启auto-tune功能,三种场景的IO使用率和写P99延迟(注意:测试场景为:3client*20thread,QPS≈44K):
 
diff --git a/_overview/zh/onebox.md b/_overview/zh/onebox.md
index 8823298..0b97963 100755
--- a/_overview/zh/onebox.md
+++ b/_overview/zh/onebox.md
@@ -17,7 +17,7 @@
 
 # 如何体验
 
-在启动onebox集群之前,你需要先编译Pegasus,请参考[编译构建](/_docs/zh/build/compile-from-source.md) 。
+在启动onebox集群之前,你需要先编译Pegasus,请参考[编译构建](/docs/build/compile-from-source/)。
 
 启动onebox集群:
 ```bash
@@ -52,7 +52,7 @@
 ```bash
 ./run.sh shell
 ```
-关于shell工具的详细用法,请参考[Shell工具](/_docs/zh/tools/shell.md) 。
+关于shell工具的详细用法,请参考[Shell工具](shell)。
 
 用bench工具进行读写测试:
 ```bash
diff --git a/_posts/2019-06-09-duplication-design.md b/_posts/2019-06-09-duplication-design.md
index 7871f51..c8d1b94 100644
--- a/_posts/2019-06-09-duplication-design.md
+++ b/_posts/2019-06-09-duplication-design.md
@@ -4,7 +4,7 @@
 author: 吴涛
 ---
 
-关于热备份的基本概念和使用可以参照 [administration/duplication](/_docs/zh/administration/duplication.md),这里将主要描述跨机房同步的设计方案和执行细节。
+关于热备份的基本概念和使用可以参照 [administration/duplication](/administration/duplication),这里将主要描述跨机房同步的设计方案和执行细节。
 
 -----