Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update tidb-distributed-execution-framework.md #15602

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,9 @@
- [TiFlash 数据校验](/tiflash/tiflash-data-validation.md)
- [TiFlash 兼容性说明](/tiflash/tiflash-compatibility.md)
- [TiFlash Pipeline Model 执行模型](/tiflash/tiflash-pipeline-model.md)
- TiDB 分布式执行框架
- [TiDB 分布式执行框架介绍](/tidb-distributed-execution-framework.md)
- [TiDB 全局排序](/tidb-global-sort.md)
- [系统变量](/system-variables.md)
- 配置文件参数
- [tidb-server](/tidb-configuration-file.md)
Expand Down Expand Up @@ -1014,9 +1017,6 @@
- [错误码](/error-codes.md)
- [通过拓扑 label 进行副本调度](/schedule-replicas-by-topology-labels.md)
- [外部存储服务的 URI 格式](/external-storage-uri.md)
- 内部组件介绍
- [TiDB 后端任务分布式并行执行框架](/tidb-distributed-execution-framework.md)
- [TiDB 全局排序](/tidb-global-sort.md)
- 常见问题解答 (FAQ)
- [FAQ 汇总](/faq/faq-overview.md)
- [产品 FAQ](/faq/tidb-faq.md)
Expand Down
2 changes: 1 addition & 1 deletion basic-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ aliases: ['/docs-cn/dev/basic-features/','/docs-cn/dev/experimental-features-4.0
| [Runaway Queries 自动管理](/tidb-resource-control.md#管理资源消耗超出预期的查询-runaway-queries) | E | N | N | N | N | N | N | N | N | N |
| [后台任务资源管控](/tidb-resource-control.md#管理后台任务) | E | N | N | N | N | N | N | N | N | N |
| [TiFlash 存算分离架构与 S3 支持](/tiflash/tiflash-disaggregated-and-s3.md) | Y | E | N | N | N | N | N | N | N | N |
| [选择执行分布式框架任务的 TiDB 节点](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | Y | N | N | N | N | N | N | N | N | N |
| [选择执行分布式执行框架任务的 TiDB 节点](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | Y | N | N | N | N | N | N | N | N | N |

[^1]: TiDB 误将 latin1 处理为 utf8 的子集。见 [TiDB #18955](https://github.com/pingcap/tidb/issues/18955)。

Expand Down
4 changes: 2 additions & 2 deletions external-storage-uri.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ summary: 介绍了外部存储服务 Amazon S3、GCS、和 Azure Blob Storage
以下是用于 TiDB Lightning 和 BR 的 Amazon S3 URI 示例,需要指定文件夹路径 `testfolder`:

```shell
s3://external/testfolder?access-key=${access-key}&secret-access-key=${secret-access-key}"
s3://external/testfolder?access-key=${access-key}&secret-access-key=${secret-access-key}
```

以下是用于 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md) 的 Amazon S3 URI 示例,需要指定具体的文件名 `test.csv`:

```shell
s3://external/test.csv?access-key=${access-key}&secret-access-key=${secret-access-key}"
s3://external/test.csv?access-key=${access-key}&secret-access-key=${secret-access-key}
```

## GCS URI 格式
Expand Down
2 changes: 1 addition & 1 deletion releases/release-7.1.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ TiDB 7.1.0 为长期支持版本 (Long-Term Support Release, LTS)。
| [`authentication_ldap_simple_server_host`](/system-variables.md#authentication_ldap_simple_server_host-从-v710-版本开始引入) | 新增 | 在 LDAP simple 身份验证中,LDAP Server 的主机名或地址。 |
| [`authentication_ldap_simple_server_port`](/system-variables.md#authentication_ldap_simple_server_port-从-v710-版本开始引入) | 新增 | 在 LDAP simple 身份验证中,LDAP Server 的 TCP/IP 端口号。 |
| [`authentication_ldap_simple_tls`](/system-variables.md#authentication_ldap_simple_tls-从-v710-版本开始引入) | 新增 | 在 LDAP simple 身份验证中,是否使用 StartTLS 对连接加密。 |
| [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。|
| [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的分布式执行框架任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。|
| [`tidb_enable_non_prepared_plan_cache_for_dml`](/system-variables.md#tidb_enable_non_prepared_plan_cache_for_dml-从-v710-版本开始引入) | 新增 | 控制非 Prepare 语句执行计划缓存是否支持 DML 语句。 |
| [`tidb_enable_row_level_checksum`](/system-variables.md#tidb_enable_row_level_checksum-从-v710-版本开始引入) | 新增 | 控制是否开启 TiCDC 单行数据正确性校验。|
| [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 |
Expand Down
2 changes: 1 addition & 1 deletion releases/release-7.1.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ TiDB 版本:7.1.1
- 修复集群升级前,如果有暂停的 DDL,会出现升级失败的问题 [#44225](https://github.com/pingcap/tidb/issues/44225) @[zimulala](https://github.com/zimulala)
- 修复通过 BR 恢复 `AUTO_ID_CACHE=1` 的表时,会遇到 `duplicate entry` 报错的问题 [#44716](https://github.com/pingcap/tidb/issues/44716) @[tiancaiamao](https://github.com/tiancaiamao)
- 修复 DDL owner 切换数次之后导致数据索引不一致的问题 [#44619](https://github.com/pingcap/tidb/issues/44619) @[tangenta](https://github.com/tangenta)
- 修复当取消处于 `none` 状态的 `ADD INDEX` DDL 任务时,因为后端任务队列没有清理此任务而导致的内存泄漏问题 [#44205](https://github.com/pingcap/tidb/issues/44205) @[tangenta](https://github.com/tangenta)
- 修复当取消处于 `none` 状态的 `ADD INDEX` DDL 任务时,因为分布式执行框架任务队列没有清理此任务而导致的内存泄漏问题 [#44205](https://github.com/pingcap/tidb/issues/44205) @[tangenta](https://github.com/tangenta)
- 修复代理协议在处理某些错误数据时报错 `Header read timeout` 的问题 [#43205](https://github.com/pingcap/tidb/issues/43205) @[blacktear23](https://github.com/blacktear23)
- 修复 PD 隔离可能会导致运行的 DDL 阻塞的问题 [#44267](https://github.com/pingcap/tidb/issues/44267) @[wjhuang2016](https://github.com/wjhuang2016)
- 修复 `SELECT CAST(n AS CHAR)` 语句中的 `n` 为负数时,查询结果出错的问题 [#44786](https://github.com/pingcap/tidb/issues/44786) @[xhebox](https://github.com/xhebox)
Expand Down
2 changes: 1 addition & 1 deletion releases/release-7.2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ TiDB 版本:7.2.0

`IMPORT INTO` 集成了 TiDB Lightning [物理导入模式](/tidb-lightning/tidb-lightning-physical-import-mode.md)的能力。通过该语句,你可以将 CSV、SQL 和 PARQUET 等格式的数据快速导入到 TiDB 的一张空表中。这种导入方式无需单独部署和管理 TiDB Lightning,在降低了数据导入难度的同时,大幅提升了数据导入效率。

对于存储在 Amazon S3 或 GCS 的数据文件,在开启了[后端任务分布式框架](/tidb-distributed-execution-framework.md)后,`IMPORT INTO` 还支持将数据导入任务拆分成多个子任务,并将子任务调度到多个 TiDB 节点并行导入,进一步提升导入性能。
对于存储在 Amazon S3 或 GCS 的数据文件,在开启了 [TiDB 分布式执行框架](/tidb-distributed-execution-framework.md)后,`IMPORT INTO` 还支持将数据导入任务拆分成多个子任务,并将子任务调度到多个 TiDB 节点并行导入,进一步提升导入性能。

更多信息,请参考[用户文档](/sql-statements/sql-statement-import-into.md)。

Expand Down
4 changes: 2 additions & 2 deletions releases/release-7.4.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ TiDB 版本:7.4.0

* 支持设置 TiDB 节点的服务范围,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy)

在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。从 v7.4.0 起,你可以通过变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围。所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。
在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。从 v7.4.0 起,你可以通过变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 控制 [TiDB 分布式执行框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围。所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。

更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。

Expand Down Expand Up @@ -298,7 +298,7 @@ TiDB 版本:7.4.0
| [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 |
| [`tidb_request_source_type`](/system-variables.md#tidb_request_source_type-从-v740-版本开始引入) | 新增 | 该变量用于显式指定当前会话的任务类型,用于[资源管控](/tidb-resource-control.md)识别并控制。如 `SET @@tidb_request_source_type = "background"`。 |
| [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。|
| [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 |
| [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 分布式执行框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,分布式执行框架将调度该节点执行任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 |
| [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 |
| [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 |
| [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 |
Expand Down
8 changes: 4 additions & 4 deletions releases/release-7.5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ TiDB 7.5.0 为长期支持版本 (Long-Term Support Release, LTS)。
<tr>
<td rowspan="3">稳定性与高可用</td>
<td>优化<a href="https://docs.pingcap.com/zh/tidb/v7.5/tidb-global-sort" target="_blank">全局排序</a>(实验特性,从 v7.4.0 开始引入)</td>
<td>TiDB v7.2.0 中引入了<a href="https://docs.pingcap.com/zh/tidb/v7.5/tidb-distributed-execution-framework" target="_blank">后端任务分布式并行执行框架</a>。在 v7.4.0 中,TiDB 以该框架为基础,引入全局排序,消除了数据 reorg 任务期间临时无序数据导致的不必要的 I/O、CPU 和内存峰值。全局排序利用外部对象存储(目前为 Amazon S3)来存储系统作业期间的中间文件,提高灵活性并降低成本。<code>ADD INDEX</code> 和 <code>IMPORT INTO</code> 等操作将更快速灵活、稳定可靠,且运行成本较低。</td>
<td>TiDB v7.1.0 中引入了<a href="https://docs.pingcap.com/zh/tidb/v7.5/tidb-distributed-execution-framework" target="_blank">分布式执行框架</a>。在 v7.4.0 中,TiDB 以该框架为基础,引入全局排序,消除了数据 reorg 任务期间临时无序数据导致的不必要的 I/O、CPU 和内存峰值。全局排序利用外部对象存储(目前为 Amazon S3)来存储系统作业期间的中间文件,提高灵活性并降低成本。<code>ADD INDEX</code> 和 <code>IMPORT INTO</code> 等操作将更快速灵活、稳定可靠,且运行成本较低。</td>
</tr>
<tr>
<td>资源管控支持<a href="https://docs.pingcap.com/zh/tidb/v7.5/tidb-resource-control#管理后台任务" target="_blank">自动管理后台任务</a>(实验特性,从 v7.4.0 开始引入)</td>
Expand Down Expand Up @@ -73,15 +73,15 @@ TiDB 7.5.0 为长期支持版本 (Long-Term Support Release, LTS)。

* 支持设置 TiDB 节点的服务范围,用于选择适用的 TiDB 节点分布式执行 `ADD INDEX` 或 `IMPORT INTO` 任务 (GA) [#46258](https://github.com/pingcap/tidb/issues/46258) @[ywqzzy](https://github.com/ywqzzy)

在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。为了避免对已有业务造成性能影响,v7.4.0 以实验特性引入了变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入),用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围,所有分布式执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点。在 v7.5.0 中,该功能正式 GA。
在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。为了避免对已有业务造成性能影响,v7.4.0 以实验特性引入了变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入),用于控制 [TiDB 分布式执行框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围,所有分布式执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点。在 v7.5.0 中,该功能正式 GA。

更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。

### 性能

* TiDB 后端任务分布式并行执行框架成为正式功能 (GA),提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016)
* TiDB 分布式执行框架成为正式功能 (GA),提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016)

v6.6.0 中引入的 TiDB 后端任务分布式并行执行框架成为正式功能 (GA)。TiDB v7.1.0 之前的版本中,在同一时间只有一个 TiDB 节点能够执行 DDL 任务。从 v7.1.0 开始,在分布式并行执行框架下,多个 TiDB 节点可以并行执行同一项 DDL 任务。从 v7.2.0 开始,分布式并行执行框架支持多个 TiDB 节点并行执行同一个 `IMPORT INTO` 任务,从而更好地利用 TiDB 集群的资源,大幅提升 DDL 和 `IMPORT INTO` 任务的性能。此外,你还可以通过增加 TiDB 节点来线性提升 DDL 和 `IMPORT INTO` 任务的性能。
v7.1.0 中引入的 TiDB 分布式执行框架成为正式功能 (GA)。TiDB v7.1.0 之前的版本中,在同一时间只有一个 TiDB 节点能够执行 DDL 任务。从 v7.1.0 开始,在分布式并行执行框架下,多个 TiDB 节点可以并行执行同一项 DDL 任务。从 v7.2.0 开始,分布式并行执行框架支持多个 TiDB 节点并行执行同一个 `IMPORT INTO` 任务,从而更好地利用 TiDB 集群的资源,大幅提升 DDL 和 `IMPORT INTO` 任务的性能。此外,你还可以通过增加 TiDB 节点来线性提升 DDL 和 `IMPORT INTO` 任务的性能。

如果要使用分布式并行执行框架,只需将 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 的值设置为 `ON`:

Expand Down
Loading