Revert "[CI] Add markdown links check (#11)" (#15)
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) 看到如下界面即表示到这一步为止是成功的。

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

- - 默认地址: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),这里将主要描述跨机房同步的设计方案和执行细节。
-----