You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/04/26 14:08:54 UTC

[shardingsphere] branch master updated: Update scaling doc (#17131)

This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new fcb300501e1 Update scaling doc (#17131)
fcb300501e1 is described below

commit fcb300501e13a46773d43fbea2598d669d702622
Author: Hongsheng Zhong <sa...@126.com>
AuthorDate: Tue Apr 26 22:08:48 2022 +0800

    Update scaling doc (#17131)
---
 .../user-manual/shardingsphere-scaling/build.cn.md | 57 +++++++++++++++++++---
 .../user-manual/shardingsphere-scaling/build.en.md | 57 +++++++++++++++++++---
 .../user-manual/shardingsphere-scaling/usage.cn.md | 14 +++---
 .../user-manual/shardingsphere-scaling/usage.en.md | 10 ++--
 4 files changed, 110 insertions(+), 28 deletions(-)

diff --git a/docs/document/content/user-manual/shardingsphere-scaling/build.cn.md b/docs/document/content/user-manual/shardingsphere-scaling/build.cn.md
index 6a7b7056294..51b685095eb 100644
--- a/docs/document/content/user-manual/shardingsphere-scaling/build.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-scaling/build.cn.md
@@ -81,15 +81,19 @@ rules:
           chunk-size: # 一次查询操作返回的最大记录数
 ```
 
-配置示例:
+`dataConsistencyChecker` 的 `type` 可以通过执行 DistSQL `SHOW SCALING CHECK ALGORITHMS` 查询到。简单对比:
+- `DATA_MATCH`:支持所有数据库,但是性能不是最好的。
+- `CRC32_MATCH`:只支持 `MySQL`,但是性能更好。
+
+自动模式配置示例:
 ```yaml
 rules:
 - !SHARDING
   # 忽略的配置
   
-  scalingName: default_scaling
+  scalingName: scaling_auto
   scaling:
-    default_scaling:
+    scaling_auto:
       input:
         workerThread: 40
         batchSize: 1000
@@ -110,13 +114,53 @@ rules:
           chunk-size: 1000
 ```
 
-以上的 `completionDetector`,`dataConsistencyChecker` 都可以通过实现 SPI 自定义。可以参考现有实现,详情请参见[开发者手册#弹性伸缩](/cn/dev-manual/scaling/)。
+手动模式配置示例:
+```yaml
+rules:
+- !SHARDING
+  # 忽略的配置
+  
+  scalingName: scaling_manual
+  scaling:
+    scaling_manual:
+      input:
+        workerThread: 40
+        batchSize: 1000
+      output:
+        workerThread: 40
+        batchSize: 1000
+      streamChannel:
+        type: MEMORY
+        props:
+          block-queue-size: 10000
+      dataConsistencyChecker:
+        type: DATA_MATCH
+        props:
+          chunk-size: 1000
+```
 
 方法2:通过 DistSQL 配置 scaling
 
-创建 scaling 配置示例:
+自动模式配置示例:
+```sql
+CREATE SHARDING SCALING RULE scaling_auto (
+INPUT(
+  WORKER_THREAD=40,
+  BATCH_SIZE=1000
+),
+OUTPUT(
+  WORKER_THREAD=40,
+  BATCH_SIZE=1000
+),
+STREAM_CHANNEL(TYPE(NAME=MEMORY, PROPERTIES("block-queue-size"=10000))),
+COMPLETION_DETECTOR(TYPE(NAME=IDLE, PROPERTIES("incremental-task-idle-minute-threshold"=30))),
+DATA_CONSISTENCY_CHECKER(TYPE(NAME=DATA_MATCH, PROPERTIES("chunk-size"=1000)))
+);
+```
+
+手动模式配置示例:
 ```sql
-CREATE SHARDING SCALING RULE default_scaling (
+CREATE SHARDING SCALING RULE scaling_manual (
 INPUT(
   WORKER_THREAD=40,
   BATCH_SIZE=1000
@@ -126,7 +170,6 @@ OUTPUT(
   BATCH_SIZE=1000
 ),
 STREAM_CHANNEL(TYPE(NAME=MEMORY, PROPERTIES("block-queue-size"=10000))),
-COMPLETION_DETECTOR(TYPE(NAME=IDLE, PROPERTIES("incremental-task-idle-minute-threshold"=3))),
 DATA_CONSISTENCY_CHECKER(TYPE(NAME=DATA_MATCH, PROPERTIES("chunk-size"=1000)))
 );
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-scaling/build.en.md b/docs/document/content/user-manual/shardingsphere-scaling/build.en.md
index 2bea5017fc8..6e902c4fc99 100644
--- a/docs/document/content/user-manual/shardingsphere-scaling/build.en.md
+++ b/docs/document/content/user-manual/shardingsphere-scaling/build.en.md
@@ -80,15 +80,19 @@ rules:
           chunk-size: # Maximum records count of a query operation for check
 ```
 
-Configuration Example:
+`type` of `dataConsistencyChecker` could be got by executing DistSQL `SHOW SCALING CHECK ALGORITHMS`. Simple comparison:
+- `DATA_MATCH` : Support all types of databases, but it's not the best performant one.
+- `CRC32_MATCH` : Support `MySQL`, performance is better than `DATA_MATCH`.
+
+Auto Mode Configuration Example:
 ```yaml
 rules:
 - !SHARDING
   # ignored configuration
   
-  scalingName: default_scaling
+  scalingName: scaling_auto
   scaling:
-    default_scaling:
+    scaling_auto:
       input:
         workerThread: 40
         batchSize: 1000
@@ -109,13 +113,53 @@ rules:
           chunk-size: 1000
 ```
 
-You could customize `completionDetector`, `dataConsistencyChecker` algorithm by implementing SPI. Current implementation could be referenced, please refer to [Dev Manual#Scaling](/en/dev-manual/scaling/) for more details.
+Manual Mode Configuration Example:
+```yaml
+rules:
+- !SHARDING
+  # ignored configuration
+  
+  scalingName: scaling_manual
+  scaling:
+    scaling_manual:
+      input:
+        workerThread: 40
+        batchSize: 1000
+      output:
+        workerThread: 40
+        batchSize: 1000
+      streamChannel:
+        type: MEMORY
+        props:
+          block-queue-size: 10000
+      dataConsistencyChecker:
+        type: DATA_MATCH
+        props:
+          chunk-size: 1000
+```
 
 Way 2: Configure scaling by DistSQL
 
-Create scaling configuration example:
+Auto Mode Configuration Example:
+```sql
+CREATE SHARDING SCALING RULE scaling_auto (
+INPUT(
+  WORKER_THREAD=40,
+  BATCH_SIZE=1000
+),
+OUTPUT(
+  WORKER_THREAD=40,
+  BATCH_SIZE=1000
+),
+STREAM_CHANNEL(TYPE(NAME=MEMORY, PROPERTIES("block-queue-size"=10000))),
+COMPLETION_DETECTOR(TYPE(NAME=IDLE, PROPERTIES("incremental-task-idle-minute-threshold"=30))),
+DATA_CONSISTENCY_CHECKER(TYPE(NAME=DATA_MATCH, PROPERTIES("chunk-size"=1000)))
+);
+```
+
+Manual Mode Configuration Example:
 ```sql
-CREATE SHARDING SCALING RULE default_scaling (
+CREATE SHARDING SCALING RULE scaling_manual (
 INPUT(
   WORKER_THREAD=40,
   BATCH_SIZE=1000
@@ -125,7 +169,6 @@ OUTPUT(
   BATCH_SIZE=1000
 ),
 STREAM_CHANNEL(TYPE(NAME=MEMORY, PROPERTIES("block-queue-size"=10000))),
-COMPLETION_DETECTOR(TYPE(NAME=IDLE, PROPERTIES("incremental-task-idle-minute-threshold"=3))),
 DATA_CONSISTENCY_CHECKER(TYPE(NAME=DATA_MATCH, PROPERTIES("chunk-size"=1000)))
 );
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-scaling/usage.cn.md b/docs/document/content/user-manual/shardingsphere-scaling/usage.cn.md
index dc7b2efba54..61a7c253ced 100644
--- a/docs/document/content/user-manual/shardingsphere-scaling/usage.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-scaling/usage.cn.md
@@ -28,13 +28,13 @@ weight = 2
 
 功能支持情况:
 
-| 功能                   | MySQL         | PostgreSQL    | openGauss     |
-| --------------------- | ------------- | ------------- | ------------- |
+| 功能                   | MySQL         | PostgreSQL   | openGauss     |
+| --------------------- | ------------- |--------------| ------------- |
 | 全量迁移               | 支持           | 支持           | 支持           |
 | 增量迁移               | 支持           | 支持           | 支持           |
-| 自动建表               | 支持           | 不支持         | 支持           |
+| 自动建表               | 支持           | 支持           | 支持            |
 | DATA_MATCH一致性校验   | 支持           | 支持           | 支持           |
-| CRC32_MATCH一致性校验  | 支持           | 不支持         | 不支持          |
+| CRC32_MATCH一致性校验  | 支持           | 不支持          | 不支持          |
 
 **注意**:
 
@@ -281,12 +281,10 @@ mysql> preview SELECT COUNT(1) FROM t_order;
 #### 其他 DistSQL
 详情请参见 [RAL #弹性伸缩](/cn/user-manual/shardingsphere-proxy/distsql/syntax/ral/#%E5%BC%B9%E6%80%A7%E4%BC%B8%E7%BC%A9)。
 
-### DistSQL 手动模式接口
-
-数据校验、切换配置等操作可以手动执行。详情请参见:[RAL #弹性伸缩](/cn/user-manual/shardingsphere-proxy/distsql/syntax/ral/#%E5%BC%B9%E6%80%A7%E4%BC%B8%E7%BC%A9)。
-
 ### DistSQL 手动模式完整流程示例
 
+手动模式下,数据校验、切换配置等操作可以手动执行。详情请参见:[RAL #弹性伸缩](/cn/user-manual/shardingsphere-proxy/distsql/syntax/ral/#%E5%BC%B9%E6%80%A7%E4%BC%B8%E7%BC%A9)。
+
 本示例演示从已有 MySQL 数据库迁移到 proxy。
 
 除了明确说明在 MySQL 执行的 SQL,其他都是在 proxy 执行。
diff --git a/docs/document/content/user-manual/shardingsphere-scaling/usage.en.md b/docs/document/content/user-manual/shardingsphere-scaling/usage.en.md
index 8ee16a65fee..a19dd25da36 100644
--- a/docs/document/content/user-manual/shardingsphere-scaling/usage.en.md
+++ b/docs/document/content/user-manual/shardingsphere-scaling/usage.en.md
@@ -29,10 +29,10 @@ If the backend database is in following table, please download JDBC driver jar a
 Supported features:
 
 | Feature                                  | MySQL         | PostgreSQL    | openGauss     |
-| ---------------------------------------- | ------------- | ------------- | ------------- |
+| ---------------------------------------- | ------------- |---------------| ------------- |
 | Inventory migration                      | Supported     | Supported     | Supported     |
 | Incremental migration                    | Supported     | Supported     | Supported     |
-| Create table automatically               | Supported     | Unsupported   | Supported     |
+| Create table automatically               | Supported     | Supported     | Supported     |
 | DATA_MATCH data consistency check        | Supported     | Supported     | Supported     |
 | CRC32_MATCH data consistency check       | Supported     | Unsupported   | Unsupported   |
 
@@ -283,12 +283,10 @@ mysql> PREVIEW SELECT COUNT(1) FROM t_order;
 #### Other DistSQL
 Please refer to [RAL#Scaling](/en/user-manual/shardingsphere-proxy/distsql/syntax/ral/#scaling) for more details.
 
-### DistSQL API for manual mode
-
-Data consistency check and switch configuration could be emitted manually. Please refer to [RAL#Scaling](/en/user-manual/shardingsphere-proxy/distsql/syntax/ral/#scaling) for more details.
-
 ### DistSQL manual mode whole process example
 
+On manual mode, data consistency check and switch configuration could be emitted manually. Please refer to [RAL#Scaling](/en/user-manual/shardingsphere-proxy/distsql/syntax/ral/#scaling) for more details.
+
 This example show how to migrate data from MySQL to proxy.
 
 Most SQLs should be executed in proxy, except few ones mentioned for MySQL.