Update PDF files at 2021-04-15 09:52:17 UTC.
diff --git a/old_version_shardingsphere b/old_version_shardingsphere
index 1c1c93b..f9ce266 100644
--- a/old_version_shardingsphere
+++ b/old_version_shardingsphere
@@ -1,1523 +1,32 @@
-commit 52972ef469f577c9e2ad86ddcef07558a3262705
-Author: Zhang Yonglun <zhangyonglun@apache.org>
-Date:   Tue Apr 13 14:28:49 2021 +0800
+commit 8235feaa2d6759a4b14121b8fec0b206c134f0f7
+Author: Liang Zhang <terrymanu@163.com>
+Date:   Thu Apr 15 17:15:01 2021 +0800
 
-    add doc of sysbench benchmark (#10061)
-    
-    * add doc of sysbench benchmark
+    Update powered by count (#10099)
 
-diff --git a/docs/document/content/features/test-engine/performance-test-sysbench.cn.md b/docs/document/content/features/test-engine/performance-test-sysbench.cn.md
-new file mode 100644
-index 0000000000..7a0cc3163b
---- /dev/null
-+++ b/docs/document/content/features/test-engine/performance-test-sysbench.cn.md
-@@ -0,0 +1,1509 @@
-++++
-+pre = "<b>3.9.5. </b>"
-+title = "性能测试(sysbench)"
-+weight = 5
-++++
-+
-+## 环境
-+
-+#### 推荐硬件环境
-+
-+```
-+CPU: 32 Cores
-+RAM: 128 GB
-+NIC: 10Gb Ethernet
-+```
-+
-+至少需要5台机器:
-+
-+```
-+Jenkins * 1: ${host-jenkins}
-+Sysbench * 1: ${host-sysbench}
-+ShardingSphere-Proxy * 1: ${host-proxy}
-+MySQL Server * 2: ${host-mysql-1}, ${host-mysql-2}
-+```
-+
-+可以适当降低Jenkins和Sysbench机器的硬件标准
-+
-+#### 软件环境
-+
-+```
-+Jenins: 最新版本
-+Sysbench: 1.0.20
-+ShardingSphere-Proxy: master分支代码打包
-+MySQL Server: 5.7.28
-+```
-+
-+## 测试方案
-+
-+根据以上的硬件环境,配置参数如下,参数应根据硬件环境改变而调整
-+
-+#### ShardingSphere-Proxy配置
-+
-+```
-+Proxy运行在${host-proxy}机器
-+版本包括:Master分支版本、4.1.1版本、3.0.0版本
-+场景包括:config-sharding、config-replica-query、config-sharding-replica-query、config-encrypt
-+配置文件详细内容:见附录1
-+```
-+
-+#### MySQL Server配置
-+
-+两个MySQL实例分别运行在${host-mysql-1}和${host-mysql-2}机器
-+```
-+需要提前在两个实例上创建sbtest数据库
-+设置参数max_prepared_stmt_count = 500000
-+设置参数max_connections = 2000
-+```
-+
-+#### Jenkins配置
-+
-+创建6个Jenkins任务,每个任务依次调用下一个任务:(运行在${host-jenkins}机器)
-+
-+```
-+1. sysbench_install: 拉取最新代码,打包Proxy压缩包
-+```
-+
-+以下任务通过Jenkins slave运行在单独的Sysbench发压机器:(运行在${host-sysbench}机器)
-+```
-+2. sysbench_sharding: 
-+   a. 远程部署各版本Proxy的分片场景
-+   b. 执行Sysbench命令压测Proxy
-+   c. 执行Sysbench命令压测MySQL Server
-+   d. 保存Sysbench压测结果
-+   e. 使用画图脚本生成性能曲线和表格(画图脚本见附录2)
-+3. sysbench_master_slave:
-+   a. 远程部署各版本Proxy的读写分离场景
-+   b. 执行Sysbench命令压测Proxy
-+   c. 执行Sysbench命令压测MySQL Server
-+   d. 保存Sysbench压测结果
-+   e. 使用画图脚本生成性能曲线和表格
-+4. sysbench_sharding_master_slave:
-+   a. 远程部署各版本Proxy的分片+读写分离场景
-+   b. 执行Sysbench命令压测Proxy
-+   c. 执行Sysbench命令压测MySQL Server
-+   d. 保存Sysbench压测结果
-+   e. 使用画图脚本生成性能曲线和表格
-+5. sysbench_encrypt:
-+   a. 远程部署各版本Proxy的加密场景
-+   b. 执行Sysbench命令压测Proxy
-+   c. 执行Sysbench命令压测MySQL Server
-+   d. 保存Sysbench压测结果
-+   e. 使用画图脚本生成性能曲线和表格
-+6. sysbench_result_aggregation:
-+   a. 重新对所有任务的压测结果执行画图脚本
-+      python3 plot_graph.py sharding
-+      python3 plot_graph.py ms
-+      python3 plot_graph.py sharding_ms
-+      python3 plot_graph.py encrypt
-+   b. 使用Jenkins的Publish HTML reports插件将所有图片整合到一个HTML页面中
-+```
-+
-+## 测试过程
-+
-+以sysbench_sharding为例(其他场景类似)
-+
-+#### 进入sysbench压测结果目录
-+
-+cd /home/jenkins/sysbench_res/sharding
-+
-+#### 创建本次构建的文件夹
-+
-+mkdir $BUILD_NUMBER
-+
-+#### 取最后14次构建,保存到隐藏文件中
-+
-+ls -v | tail -n14 > .build_number.txt
-+
-+#### 部署及压测
-+
-+步骤1 执行远程部署脚本,部署Proxy到${host-proxy}
-+
-+./deploy_sharding.sh
-+
-+```
-+#!/bin/sh
-+
-+rm -fr apache-shardingsphere-*-shardingsphere-proxy-bin
-+tar zxvf apache-shardingsphere-*-shardingsphere-proxy-bin.tar.gz
-+
-+sh stop_proxy.sh
-+
-+cp -f prepared_conf/mysql-connector-java-5.1.47.jar apache-shardingsphere-*-shardingsphere-proxy-bin/lib
-+cp -f prepared_conf/start.sh apache-shardingsphere-*-shardingsphere-proxy-bin/bin
-+cp -f prepared_conf/config-sharding.yaml prepared_conf/server.yaml apache-shardingsphere-*-shardingsphere-proxy-bin/conf
-+
-+./apache-shardingsphere-*-shardingsphere-proxy-bin/bin/start.sh
-+
-+sleep 30
-+```
-+
-+步骤2 执行sysbench脚本
-+
-+```
-+# master
-+
-+cd /home/jenkins/sysbench_res/sharding
-+cd $BUILD_NUMBER
-+
-+sysbench oltp_read_only --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=10 --time=3600 --threads=10 --max-requests=0 --percentile=99 --mysql-ignore-errors="all" --rand-type=uniform --range_selects=off --auto_inc=off cleanup
-+sysbench oltp_read_only --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=10 --time=3600 --threads=10 --max-requests=0 --percentile=99 --mysql-ignore-errors="all" --rand-type=uniform --range_selects=off --auto_inc=off prepare
-+
-+sysbench oltp_read_only        --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run
-+sysbench oltp_read_only        --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_read_only.master.txt
-+sysbench oltp_point_select     --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_point_select.master.txt
-+sysbench oltp_read_write       --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_read_write.master.txt
-+sysbench oltp_write_only       --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_write_only.master.txt
-+sysbench oltp_update_index     --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_update_index.master.txt
-+sysbench oltp_update_non_index --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_update_non_index.master.txt
-+sysbench oltp_delete           --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=30  --time=180 --threads=256 --max-requests=0 --percentile=99  --mysql-ignore-errors="all" --range_selects=off --rand-type=uniform --auto_inc=off run | tee oltp_delete.master.txt
-+
-+sysbench oltp_read_only --mysql-host=${host-proxy} --mysql-port=3307 --mysql-user=root --mysql-password='root' --mysql-db=sbtest --tables=10 --table-size=1000000 --report-interval=10 --time=3600 --threads=10 --max-requests=0 --percentile=99 --mysql-ignore-errors="all" --rand-type=uniform --range_selects=off --auto_inc=off cleanup
-+```
-+
-+4.1.1、3.0.0、直连MySQL这三个场景,重复上面步骤1和步骤2
-+
-+#### 执行停止Proxy脚本
-+
-+./stop_proxy.sh
-+
-+```
-+#!/bin/sh
-+
-+./3.0.0_sharding-proxy/bin/stop.sh 
-+./4.1.1_apache-shardingsphere-4.1.1-sharding-proxy-bin/bin/stop.sh
-+./apache-shardingsphere-*-shardingsphere-proxy-bin/bin/stop.sh
-+```
-+
-+#### 生成压测曲线图片
-+
-+```
-+# Generate graph
-+
-+cd /home/jenkins/sysbench_res/
-+python3 plot_graph.py sharding
-+```
-+
-+#### 利用Jenkins的 Publish HTML reports插件 将图片发布到页面里
-+
-+```
-+HTML directory to archive: /home/jenkins/sysbench_res/graph/
-+Index page[s]: 01_sharding.html
-+Report title: HTML Report
-+```
-+
-+## sysbench测试用例分析
-+
-+#### oltp_point_select
-+
-+```
-+Prepare Statement (ID = 1): SELECT c FROM sbtest1 WHERE id=?
-+Execute Statement: ID = 1
-+```
-+
-+#### oltp_read_only
-+
-+```
-+Prepare Statement (ID = 1): 'COMMIT'
-+Prepare Statement (ID = 2): SELECT c FROM sbtest1 WHERE id=?
-+
-+Statement: 'BEGIN'
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 1
-+```
-+
-+#### oltp_write_only
-+
-+```
-+Prepare Statement (ID = 1): 'COMMIT'
-+Prepare Statement (ID = 2): UPDATE sbtest1 SET k=k+1 WHERE id=?
-+Prepare Statement (ID = 3): UPDATE sbtest6 SET c=? WHERE id=?
-+Prepare Statement (ID = 4): DELETE FROM sbtest1 WHERE id=?
-+Prepare Statement (ID = 5): INSERT INTO sbtest1 (id, k, c, pad) VALUES (?, ?, ?, ?)
-+
-+Statement: 'BEGIN'
-+Execute Statement: ID = 2
-+Execute Statement: ID = 3
-+Execute Statement: ID = 4
-+Execute Statement: ID = 5
-+Execute Statement: ID = 1
-+```
-+
-+#### oltp_read_write
-+
-+```
-+Prepare Statement (ID = 1): 'COMMIT'
-+Prepare Statement (ID = 2): SELECT c FROM sbtest1 WHERE id=?
-+Prepare Statement (ID = 3): UPDATE sbtest3 SET k=k+1 WHERE id=?
-+Prepare Statement (ID = 4): UPDATE sbtest10 SET c=? WHERE id=?
-+Prepare Statement (ID = 5): DELETE FROM sbtest8 WHERE id=?
-+Prepare Statement (ID = 6): INSERT INTO sbtest8 (id, k, c, pad) VALUES (?, ?, ?, ?)
-+
-+Statement: 'BEGIN'
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 2
-+Execute Statement: ID = 3
-+Execute Statement: ID = 4
-+Execute Statement: ID = 5
-+Execute Statement: ID = 6
-+Execute Statement: ID = 1
-+```
-+
-+#### oltp_update_index
-+
-+```
-+Prepare Statement (ID = 1): UPDATE sbtest1 SET k=k+1 WHERE id=?
-+
-+Execute Statement: ID = 1
-+```
-+
-+#### oltp_update_non_index
-+
-+```
-+Prepare Statement (ID = 1): UPDATE sbtest1 SET c=? WHERE id=?
-+
-+Execute Statement: ID = 1
-+```
-+
-+#### oltp_delete
-+
-+```
-+Prepare Statement (ID = 1): DELETE FROM sbtest1 WHERE id=?
-+
-+Execute Statement: ID = 1
-+```
-+
-+## 附录1
-+
-+#### Master branch version
-+
-+server.yaml
-+
-+```yaml
-+authentication:
-+  users:
-+    root:
-+      password: root
-+    sharding:
-+      password: sharding
-+
-+props:
-+  max-connections-size-per-query: 10
-+  executor-size: 128  # Infinite by default.
-+  proxy-frontend-flush-threshold: 128  # The default value is 128.
-+    # LOCAL: Proxy will run with LOCAL transaction.
-+    # XA: Proxy will run with XA transaction.
-+    # BASE: Proxy will run with B.A.S.E transaction.
-+  proxy-transaction-type: LOCAL
-+  proxy-opentracing-enabled: false
-+  proxy-hint-enabled: false
-+  query-with-cipher-column: true
-+  sql-show: false
-+  check-table-metadata-enabled: false
-+  lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock
-+```
-+
-+config-sharding.yaml
-+
-+```yaml
-+
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+    minPoolSize: 256
-+    maintenanceIntervalMilliseconds: 30000
-+  ds_1:
-+    url: jdbc:mysql://${host-mysql-2}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+    minPoolSize: 256
-+    maintenanceIntervalMilliseconds: 30000
-+
-+rules:
-+- !SHARDING
-+  tables:
-+    sbtest1:
-+      actualDataNodes: ds_${0..1}.sbtest1_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_1
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest2:
-+      actualDataNodes: ds_${0..1}.sbtest2_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_2
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest3:
-+      actualDataNodes: ds_${0..1}.sbtest3_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_3
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest4:
-+      actualDataNodes: ds_${0..1}.sbtest4_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_4
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest5:
-+      actualDataNodes: ds_${0..1}.sbtest5_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_5
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest6:
-+      actualDataNodes: ds_${0..1}.sbtest6_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_6
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest7:
-+      actualDataNodes: ds_${0..1}.sbtest7_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_7
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest8:
-+      actualDataNodes: ds_${0..1}.sbtest8_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_8
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest9:
-+      actualDataNodes: ds_${0..1}.sbtest9_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_9
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest10:
-+      actualDataNodes: ds_${0..1}.sbtest10_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_10
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+
-+  defaultDatabaseStrategy:
-+    standard:
-+      shardingColumn: id
-+      shardingAlgorithmName: database_inline
-+
-+  shardingAlgorithms:
-+    database_inline:
-+      type: INLINE
-+      props:
-+        algorithm-expression: ds_${id % 2}
-+    table_inline_1:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest1_${id % 100}
-+    table_inline_2:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest2_${id % 100}
-+    table_inline_3:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest3_${id % 100}
-+    table_inline_4:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest4_${id % 100}
-+    table_inline_5:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest5_${id % 100}
-+    table_inline_6:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest6_${id % 100}
-+    table_inline_7:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest7_${id % 100}
-+    table_inline_8:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest8_${id % 100}
-+    table_inline_9:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest9_${id % 100}
-+    table_inline_10:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest10_${id % 100}
-+  keyGenerators:
-+    snowflake:
-+      type: SNOWFLAKE
-+      props:
-+        worker-id: 123
-+```
-+
-+config-replica-query.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 128
-+    minPoolSize: 128
-+    maintenanceIntervalMilliseconds: 30000
-+
-+rules:
-+- !REPLICA_QUERY
-+  dataSources:
-+    pr_ds:
-+      name: pr_ds
-+      primaryDataSourceName: ds_0
-+      replicaDataSourceNames:
-+        - ds_0
-+        - ds_0
-+```
-+
-+config-sharding-replica-query.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  primary_ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+    minPoolSize: 256
-+    maintenanceIntervalMilliseconds: 30000
-+  primary_ds_1:
-+    url: jdbc:mysql://${host-mysql-2}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+    minPoolSize: 256
-+    maintenanceIntervalMilliseconds: 30000
-+
-+rules:
-+- !SHARDING
-+  tables:
-+    sbtest1:
-+      actualDataNodes: ds_${0..1}.sbtest1_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_1
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest2:
-+      actualDataNodes: ds_${0..1}.sbtest2_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_2
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest3:
-+      actualDataNodes: ds_${0..1}.sbtest3_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_3
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest4:
-+      actualDataNodes: ds_${0..1}.sbtest4_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_4
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest5:
-+      actualDataNodes: ds_${0..1}.sbtest5_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_5
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest6:
-+      actualDataNodes: ds_${0..1}.sbtest6_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_6
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest7:
-+      actualDataNodes: ds_${0..1}.sbtest7_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_7
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest8:
-+      actualDataNodes: ds_${0..1}.sbtest8_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_8
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest9:
-+      actualDataNodes: ds_${0..1}.sbtest9_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_9
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+    sbtest10:
-+      actualDataNodes: ds_${0..1}.sbtest10_${0..99}
-+      tableStrategy:
-+        standard:
-+          shardingColumn: id
-+          shardingAlgorithmName: table_inline_10
-+      keyGenerateStrategy:
-+        column: id
-+        keyGeneratorName: snowflake
-+   
-+  defaultDatabaseStrategy:
-+    standard:
-+      shardingColumn: id
-+      shardingAlgorithmName: database_inline
-+
-+  shardingAlgorithms:
-+    database_inline:
-+      type: INLINE
-+      props:
-+        algorithm-expression: ds_${id % 2}
-+    table_inline_1:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest1_${id % 100}
-+    table_inline_2:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest2_${id % 100}
-+    table_inline_3:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest3_${id % 100}
-+    table_inline_4:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest4_${id % 100}
-+    table_inline_5:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest5_${id % 100}
-+    table_inline_6:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest6_${id % 100}
-+    table_inline_7:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest7_${id % 100}
-+    table_inline_8:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest8_${id % 100}
-+    table_inline_9:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest9_${id % 100}
-+    table_inline_10:
-+      type: INLINE
-+      props:
-+        algorithm-expression: sbtest10_${id % 100}
-+  keyGenerators:
-+    snowflake:
-+      type: SNOWFLAKE
-+      props:
-+        worker-id: 123
-+
-+- !REPLICA_QUERY
-+  dataSources:
-+    ds_0:
-+      name: ds_0
-+      primaryDataSourceName: primary_ds_0
-+      replicaDataSourceNames:
-+        - primary_ds_0
-+        - primary_ds_0
-+    ds_1:
-+      name: ds_1
-+      primaryDataSourceName: primary_ds_1
-+      replicaDataSourceNames:
-+        - primary_ds_1
-+        - primary_ds_1
-+```
-+
-+config-encrypt.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+    minPoolSize: 256
-+    maintenanceIntervalMilliseconds: 30000
-+
-+rules:
-+- !ENCRYPT
-+  encryptors:
-+    md5_encryptor:
-+      type: MD5
-+  tables:
-+    sbtest1:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest2:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest3:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest4:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest5:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest6:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest7:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest8:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest9:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+    sbtest10:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptorName: md5_encryptor
-+```
-+
-+#### 4.1.1 version
-+
-+server.yaml
-+
-+```yaml
-+authentication:
-+  users:
-+    root:
-+      password: root
-+    sharding:
-+      password: sharding
-+      authorizedSchemas: sharding_db
-+
-+props:
-+  max.connections.size.per.query: 10
-+  acceptor.size: 256  # The default value is available processors count * 2.
-+  executor.size: 128  # Infinite by default.
-+  proxy.frontend.flush.threshold: 128  # The default value is 128.
-+    # LOCAL: Proxy will run with LOCAL transaction.
-+    # XA: Proxy will run with XA transaction.
-+    # BASE: Proxy will run with B.A.S.E transaction.
-+  proxy.transaction.type: LOCAL
-+  proxy.opentracing.enabled: false
-+  proxy.hint.enabled: false
-+  query.with.cipher.column: true
-+  sql.show: false
-+  allow.range.query.with.inline.sharding: false
-+```
-+
-+config-sharding.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+  ds_1:
-+    url: jdbc:mysql://${host-mysql-2}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+
-+shardingRule:
-+  tables:
-+    sbtest1:
-+      actualDataNodes: ds_${0..1}.sbtest1_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest1_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest2:
-+      actualDataNodes: ds_${0..1}.sbtest2_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest2_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest3:
-+      actualDataNodes: ds_${0..1}.sbtest3_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest3_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest4:
-+      actualDataNodes: ds_${0..1}.sbtest4_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest4_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest5:
-+      actualDataNodes: ds_${0..1}.sbtest5_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest5_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest6:
-+      actualDataNodes: ds_${0..1}.sbtest6_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest6_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest7:
-+      actualDataNodes: ds_${0..1}.sbtest7_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest7_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest8:
-+      actualDataNodes: ds_${0..1}.sbtest8_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest8_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest9:
-+      actualDataNodes: ds_${0..1}.sbtest9_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest9_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest10:
-+      actualDataNodes: ds_${0..1}.sbtest10_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest10_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+
-+  defaultDatabaseStrategy:
-+    inline:
-+      shardingColumn: id
-+      algorithmExpression: ds_${id % 2}
-+```
-+
-+config-master_slave.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+
-+masterSlaveRule:
-+  name: ms_ds
-+  masterDataSourceName: ds_0
-+  slaveDataSourceNames:
-+    - ds_0
-+    - ds_0
-+```
-+
-+config-sharding-master_slave.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  primary_ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+  primary_ds_1:
-+    url: jdbc:mysql://${host-mysql-2}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+
-+shardingRule:
-+  tables:
-+    sbtest1:
-+      actualDataNodes: ds_${0..1}.sbtest1_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest1_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest2:
-+      actualDataNodes: ds_${0..1}.sbtest2_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest2_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest3:
-+      actualDataNodes: ds_${0..1}.sbtest3_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest3_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest4:
-+      actualDataNodes: ds_${0..1}.sbtest4_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest4_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest5:
-+      actualDataNodes: ds_${0..1}.sbtest5_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest5_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest6:
-+      actualDataNodes: ds_${0..1}.sbtest6_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest6_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest7:
-+      actualDataNodes: ds_${0..1}.sbtest7_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest7_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest8:
-+      actualDataNodes: ds_${0..1}.sbtest8_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest8_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest9:
-+      actualDataNodes: ds_${0..1}.sbtest9_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest9_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+    sbtest10:
-+      actualDataNodes: ds_${0..1}.sbtest10_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest10_${id % 100}
-+      keyGenerator:
-+        type: SNOWFLAKE
-+        column: id
-+
-+  defaultDatabaseStrategy:
-+    inline:
-+      shardingColumn: id
-+      algorithmExpression: ds_${id % 2}
-+
-+  masterSlaveRules:
-+    ds_0:
-+      masterDataSourceName: primary_ds_0
-+      slaveDataSourceNames: [primary_ds_0, primary_ds_0]
-+      loadBalanceAlgorithmType: ROUND_ROBIN
-+    ds_1:
-+      masterDataSourceName: primary_ds_1
-+      slaveDataSourceNames: [primary_ds_1, primary_ds_1]
-+      loadBalanceAlgorithmType: ROUND_ROBIN
-+```
-+
-+config-encrypt.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    connectionTimeoutMilliseconds: 30000
-+    idleTimeoutMilliseconds: 60000
-+    maxLifetimeMilliseconds: 1800000
-+    maxPoolSize: 256
-+
-+encryptRule:
-+  encryptors:
-+    encryptor_md5:
-+      type: md5
-+  tables:
-+    sbtest1:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest2:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest3:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest4:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest5:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest6:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest7:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest8:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest9:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+    sbtest10:
-+      columns:
-+        pad:
-+          cipherColumn: pad
-+          encryptor: encryptor_md5
-+```
-+
-+#### 3.0.0 version
-+
-+server.yaml
-+
-+```yaml
-+authentication:
-+  username: root
-+  password: root
-+
-+props:
-+  max.connections.size.per.query: 10
-+  acceptor.size: 256  # The default value is available processors count * 2.
-+  executor.size: 128  # Infinite by default.
-+  proxy.frontend.flush.threshold: 128  # The default value is 128.
-+    # LOCAL: Proxy will run with LOCAL transaction.
-+    # XA: Proxy will run with XA transaction.
-+    # BASE: Proxy will run with B.A.S.E transaction.
-+  proxy.transaction.type: LOCAL
-+  proxy.opentracing.enabled: false
-+  sql.show: false
-+```
-+
-+config-sharding.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    autoCommit: true
-+    connectionTimeout: 30000
-+    idleTimeout: 60000
-+    maxLifetime: 1800000
-+    maximumPoolSize: 256
-+  ds_1:
-+    url: jdbc:mysql://${host-mysql-2}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    autoCommit: true
-+    connectionTimeout: 30000
-+    idleTimeout: 60000
-+    maxLifetime: 1800000
-+    maximumPoolSize: 256
-+
-+shardingRule:
-+  tables:
-+    sbtest1:
-+      actualDataNodes: ds_${0..1}.sbtest1_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest1_${id % 100}
-+    sbtest2:
-+      actualDataNodes: ds_${0..1}.sbtest2_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest2_${id % 100}
-+    sbtest3:
-+      actualDataNodes: ds_${0..1}.sbtest3_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest3_${id % 100}
-+    sbtest4:
-+      actualDataNodes: ds_${0..1}.sbtest4_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest4_${id % 100}
-+    sbtest5:
-+      actualDataNodes: ds_${0..1}.sbtest5_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest5_${id % 100}
-+    sbtest6:
-+      actualDataNodes: ds_${0..1}.sbtest6_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest6_${id % 100}
-+    sbtest7:
-+      actualDataNodes: ds_${0..1}.sbtest7_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest7_${id % 100}
-+    sbtest8:
-+      actualDataNodes: ds_${0..1}.sbtest8_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest8_${id % 100}
-+    sbtest9:
-+      actualDataNodes: ds_${0..1}.sbtest9_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest9_${id % 100}
-+    sbtest10:
-+      actualDataNodes: ds_${0..1}.sbtest10_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest10_${id % 100}
-+
-+  defaultDatabaseStrategy:
-+    inline:
-+      shardingColumn: id
-+      algorithmExpression: ds_${id % 2}
-+```
-+
-+config-master_slave.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    autoCommit: true
-+    connectionTimeout: 30000
-+    idleTimeout: 60000
-+    maxLifetime: 1800000
-+    maximumPoolSize: 256
-+
-+masterSlaveRule:
-+  name: ms_ds
-+  masterDataSourceName: ds_0
-+  slaveDataSourceNames:
-+    - ds_0
-+    - ds_0
-+```
-+
-+config-sharding-master_slave.yaml
-+
-+```yaml
-+schemaName: sbtest
-+
-+dataSources:
-+  primary_ds_0:
-+    url: jdbc:mysql://${host-mysql-1}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    autoCommit: true
-+    connectionTimeout: 30000
-+    idleTimeout: 60000
-+    maxLifetime: 1800000
-+    maximumPoolSize: 256
-+  primary_ds_1:
-+    url: jdbc:mysql://${host-mysql-2}:3306/sbtest?serverTimezone=UTC&useSSL=false
-+    username: root
-+    password:
-+    autoCommit: true
-+    connectionTimeout: 30000
-+    idleTimeout: 60000
-+    maxLifetime: 1800000
-+    maximumPoolSize: 256
-+
-+shardingRule:
-+  tables:
-+    sbtest1:
-+      actualDataNodes: ds_${0..1}.sbtest1_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest1_${id % 100}
-+    sbtest2:
-+      actualDataNodes: ds_${0..1}.sbtest2_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest2_${id % 100}
-+    sbtest3:
-+      actualDataNodes: ds_${0..1}.sbtest3_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest3_${id % 100}
-+    sbtest4:
-+      actualDataNodes: ds_${0..1}.sbtest4_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest4_${id % 100}
-+    sbtest5:
-+      actualDataNodes: ds_${0..1}.sbtest5_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest5_${id % 100}
-+    sbtest6:
-+      actualDataNodes: ds_${0..1}.sbtest6_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest6_${id % 100}
-+    sbtest7:
-+      actualDataNodes: ds_${0..1}.sbtest7_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest7_${id % 100}
-+    sbtest8:
-+      actualDataNodes: ds_${0..1}.sbtest8_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest8_${id % 100}
-+    sbtest9:
-+      actualDataNodes: ds_${0..1}.sbtest9_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest9_${id % 100}
-+    sbtest10:
-+      actualDataNodes: ds_${0..1}.sbtest10_${0..99}
-+      tableStrategy:
-+        inline:
-+          shardingColumn: id
-+          algorithmExpression: sbtest10_${id % 100}
-+
-+  defaultDatabaseStrategy:
-+    inline:
-+      shardingColumn: id
-+      algorithmExpression: ds_${id % 2}
-+
-+  masterSlaveRules:
-+    ds_0:
-+      masterDataSourceName: primary_ds_0
-+      slaveDataSourceNames: [primary_ds_0, primary_ds_0]
-+      loadBalanceAlgorithmType: ROUND_ROBIN
-+    ds_1:
-+      masterDataSourceName: primary_ds_1
-+      slaveDataSourceNames: [primary_ds_1, primary_ds_1]
-+      loadBalanceAlgorithmType: ROUND_ROBIN
-+```
-+
-+config-encrypt.yaml
-+
-+```
-+不支持
-+```
-+
-+## 附录2
-+
-+plot_graph.py
-+
-+```python
-+import sys
-+import matplotlib.pyplot as plt
-+import numpy as np
-+
-+
-+def generate_graph(path, case_name):
-+    dataset = {
-+        'build_num': [],
-+        'master_version': [],
-+        'master_xa': [],
-+        '4.1.1_version': [],
-+        '3.0.0_version': [],
-+        'mysql_server': []
-+    }
-+    with open(path + '/.build_number.txt') as builds:
-+        for line in builds:
-+            dataset['build_num'].append(int(line))
-+    generate_data(path, case_name, dataset)
-+    print(dataset)
-+    fig, ax = plt.subplots()
-+    ax.grid(True)
-+    plt.title(case_name)
-+
-+    data = [dataset['master_version'][-7:], dataset['master_xa'][-7:], dataset['4.1.1_version'][-7:], dataset['3.0.0_version'][-7:], dataset['mysql_server'][-7:]]
-+    columns = dataset['build_num'][-7:]
-+    rows = ['master', 'xa', '4.1.1', '3.0.0', 'mysql']
-+    rcolors = plt.cm.BuPu(np.full(len(rows), 0.1))
-+    ccolors = plt.cm.BuPu(np.full(len(columns), 0.1))
-+    the_table = plt.table(cellText=data, rowLabels=rows, colLabels=columns, rowColours=rcolors, colColours=ccolors,
-+                          loc='bottom', bbox=[0.0, -0.50, 1, .28])
-+    plt.subplots_adjust(left=0.15, bottom=0.3, right=0.98)
-+
-+    plt.xticks(range(14))
-+    ax.set_xticklabels(dataset['build_num'])
-+    plt.plot(dataset['master_version'], 'o-', color='magenta', label='master_version')
-+    plt.plot(dataset['master_xa'], 'o-', color='darkviolet', label='master_xa')
-+    plt.plot(dataset['4.1.1_version'], 'r--', color='blue', label='4.1.1_version')
-+    plt.plot(dataset['3.0.0_version'], 'r--', color='orange', label='3.0.0_version')
-+    plt.plot(dataset['mysql_server'], 'r--', color='lime', label='mysql_server')
-+    plt.xlim()
-+    plt.legend()
-+    plt.xlabel('build_num')
-+    plt.ylabel('transactions per second')
-+    plt.savefig('graph/' + path + '/' + case_name)
-+    plt.show()
-+
-+
-+def generate_data(path, case_name, dataset):
-+    for build in dataset['build_num']:
-+        fill_dataset(build, case_name, dataset, path, 'master_version', '.master.txt')
-+        fill_dataset(build, case_name, dataset, path, 'master_xa', '.xa.txt')
-+        fill_dataset(build, case_name, dataset, path, '4.1.1_version', '.4_1_1.txt')
-+        fill_dataset(build, case_name, dataset, path, '3.0.0_version', '.3_0_0.txt')
-+        fill_dataset(build, case_name, dataset, path, 'mysql_server', '.mysql.txt')
-+
-+
-+def fill_dataset(build, case_name, dataset, path, version, suffix):
-+    try:
-+        with open(path + '/' + str(build) + '/' + case_name + suffix) as version_master:
-+            value = 0
-+            for line in version_master:
-+                if 'transactions:' in line:
-+                    items = line.split('(')
-+                    value = float(items[1][:-10])
-+            dataset[version].append(value)
-+    except FileNotFoundError:
-+        dataset[version].append(0)
-+
-+
-+if __name__ == '__main__':
-+    path = sys.argv[1]
-+    generate_graph(path, 'oltp_point_select')
-+    generate_graph(path, 'oltp_read_only')
-+    generate_graph(path, 'oltp_write_only')
-+    generate_graph(path, 'oltp_read_write')
-+    generate_graph(path, 'oltp_update_index')
-+    generate_graph(path, 'oltp_update_non_index')
-+    generate_graph(path, 'oltp_delete')
-+```
+diff --git a/docs/community/content/powered-by/_index.cn.md b/docs/community/content/powered-by/_index.cn.md
+index 20ecafc486..5945379a39 100644
+--- a/docs/community/content/powered-by/_index.cn.md
++++ b/docs/community/content/powered-by/_index.cn.md
+@@ -13,7 +13,7 @@ chapter = true
+ 
+ ## 谁在使用 ShardingSphere?
+ 
+-共计 165 家公司。
++共计 166 家公司。
+ 
+ ### 金融行业
+ <ul>
+diff --git a/docs/community/content/powered-by/_index.en.md b/docs/community/content/powered-by/_index.en.md
+index 2357ae2776..14b5c2c036 100644
+--- a/docs/community/content/powered-by/_index.en.md
++++ b/docs/community/content/powered-by/_index.en.md
+@@ -13,7 +13,7 @@ Please register [here](https://github.com/apache/shardingsphere/issues/234) with
+ 
+ ## Who are using ShardingSphere?
+ 
+-Total: 165 companies.
++Total: 166 companies.
+ 
+ ### Financial Industry
+ <ul>
diff --git a/pdf/shardingsphere_docs_cn.pdf b/pdf/shardingsphere_docs_cn.pdf
index b4035c7..fee8073 100644
--- a/pdf/shardingsphere_docs_cn.pdf
+++ b/pdf/shardingsphere_docs_cn.pdf
Binary files differ
diff --git a/pdf/shardingsphere_docs_en.pdf b/pdf/shardingsphere_docs_en.pdf
index 52ef23c..c4bffc4 100644
--- a/pdf/shardingsphere_docs_en.pdf
+++ b/pdf/shardingsphere_docs_en.pdf
Binary files differ