Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Grace Cai <[email protected]>
  • Loading branch information
MyonKeminta and qiancai authored Oct 8, 2024
1 parent 1dfdb88 commit 8c5fe7f
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -5001,25 +5001,25 @@ Query OK, 0 rows affected, 1 warning (0.00 sec)
- 类型:枚举型
- 默认值:`DEFAULT`
- 可选值:`DEFAULT``PARALLEL``PARALLEL-FAST`
- 这个变量用来设置 TiDB 向 PD 发送 TSO 请求时使用的模式。这里的模式将用于控制 TSO 请求是否并行。可用于调节获取 TS 时消耗在请求攒批阶段的时间,从而在一些场景下降低执行查询时花费在等待 TS 阶段的时间。
- 这个变量用来设置 TiDB 向 PD 发送 TSO RPC 请求时使用的模式。这里的模式将用于控制 TSO RPC 请求是否并行,调节获取 TS 时消耗在请求攒批阶段的时间,从而在一些场景下降低执行查询时花费在等待 TS 阶段的时间。

- `DEFAULT`: 默认的模式。该模式下,TiDB 将当前节点上的所有取 TS 的操作 batch 之后,会串行地对每个 batch 进行发送请求、等待响应的过程。这种模式下,每个取 TS 的操作的平均理论耗时大约是实际 TSO RPC 耗时的 1.5 倍左右。
- `PARALLEL`: 此模式下,TiDB 将尝试将每次攒批的时间缩短到默认模式的大约一半、并尽可能保持两个 TSO RPC 请求在同时进行。在这种模式下,理论上最高可以将每个取 TS 的操作的平均耗时缩短到实际 TSO RPC 耗时的大约 1.25 ,即默认模式的 83% 左右。但是,batch 的效果会降低,TSO RPC 请求的数量会上升到默认模式的大约两倍左右
- `PARALLEL-FAST`: `PARALLEL` 模式类似,此模式下,TiDB 将尝试将每次攒批的时间缩短到默认模式的大约 1/4并尽可能保持 4 个 TSO RPC 请求在同时进行。在这种模式下,理论上最高可以将每个取 TS 的操作的平均耗时缩短到实际 TSO RPC 耗时的大约 1.125 ,即默认模式的 75% 左右。但是,batch 的效果会降低,TSO RPC 请求的数量会上升到默认模式的大约 4 倍左右。
- `DEFAULT`:默认模式。TiDB 会将一段时间内当前节点的所有取 TS 操作攒批到一个 TSO RPC 请求中发送给 PD 批量获取 TS,因而每次取 TS 操作的耗时由等待攒批的时间和进行 RPC 请求的时间组成。在默认模式下,不同的 TSO RPC 请求之间是串行进行的,每个取 TS 操作的平均耗时是实际 TSO RPC 耗时的 1.5 倍左右。
- `PARALLEL`:并发模式。在该模式下,TiDB 会尝试将每次攒批的时间缩短到默认模式的 1/2 左右,并尽可保持两个 TSO RPC 请求同时进行。这样,每个取 TS 的操作的平均耗时理论上最多能缩短到实际 TSO RPC 耗时的 1.25 倍左右,即默认模式的 83% 左右。但是,攒批的效果会降低,TSO RPC 请求的数量会上升到默认模式的两倍左右
- `PARALLEL-FAST`:快速并发模式。`PARALLEL` 模式类似,在该模式下,TiDB 会尝试将每次攒批的时间缩短到默认模式 1/4 左右,并尽可能保持 4 个 TSO RPC 请求同时进行。这样,每个取 TS 操作的平均耗时理论上最多能缩短到实际 TSO RPC 耗时的 1.125 倍左右,即默认模式的 75% 左右。但是,攒批的效果会进一步降低,TSO RPC 请求的数量会上升到默认模式的 4 倍左右。

- 在满足以下条件的情况下,可以考虑将该参数修改到 `PARALLEL``PARALLEL-FAST` 来获得一定的性能提升:
- 当满足以下条件时,可以考虑将该变量设置为 `PARALLEL``PARALLEL-FAST` 来获得一定的性能提升:

- 在 SQL 的耗时组成中,TSO wait duration 占比显著
- TSO 等待时间在 SQL 查询的整体耗时中占比显著
- PD 的 TSO 分配未达到瓶颈。
- PD 和 TiDB 节点的 CPU 资源比较充足。
- TiDB 到 PD 的网络延迟显著大于 PD 进行 TS 分配的耗时,即 TiDB 往 PD 发起的 TSO 请求的耗时主要由网络延迟构成。
- TiDB 发往 PD 的 TSO 请求的总耗时可以通过 Grafana 的 TiDB 页面中的 PD Client 分类下的 PD TSO RPC Duration 指标进行观察;PD 进行 TS 分配的耗时可以在 Grafana 的 PD 页面中的 TiDB 分类下的 PD server TSO handle duration 进行观察
- 如果 TiDB 到 PD 的 TSO 请求的数量增加 2 倍(对于 `PARALLEL` 模式)或 4 倍(对于 `PARALLEL-FAST`),所带来的额外网络流量可以接受。
- TiDB 到 PD 的网络延迟显著高于 PD 进行 TSO 分配的耗时,即 TSO RPC 请求的耗时主要由网络延迟构成。
- TSO RPC 请求的耗时可以通过 Grafana 的 TiDB 面板中 PD Client 分类下的 **PD TSO RPC Duration** 查看。PD 进行 TSO 分配的耗时可以通过 Grafana 的 PD 面板中 TiDB 分类下的 **PD server TSO handle duration** 查看
- 如果 TiDB 到 PD 的 TSO RPC 请求的数量增加 2 倍(对于 `PARALLEL` 模式)或 4 倍(对于 `PARALLEL-FAST`),所带来的额外网络流量可以接受。

> **注意:**
>
> - `PARALLEL``PARALLEL-FAST` 模式与 [`tidb_tso_client_batch_max_wait_time`](#tidb_tso_client_batch_max_wait_time-从-v530-版本开始引入) 和 [`tidb_enable_tso_follower_proxy`](#tidb_enable_tso_follower_proxy-从-v530-版本开始引入) 不兼容。如果 [`tidb_tso_client_batch_max_wait_time`](#tidb_tso_client_batch_max_wait_time-从-v530-版本开始引入) 被设为非 0 值或者 [`tidb_enable_tso_follower_proxy`](#tidb_enable_tso_follower_proxy-从-v530-版本开始引入) 被启用,则该变量不生效,并按照 `DEFAULT` 模式工作。
> - `PARALLEL``PARALLEL-FAST` 模式针对 TiDB 的取 TS 操作的整体平均耗时进行优化。对于长尾、尖刺问题,启用该优化可能不能带来显著提升
> - `PARALLEL``PARALLEL-FAST` 这两种模式与 [`tidb_tso_client_batch_max_wait_time`](#tidb_tso_client_batch_max_wait_time-从-v530-版本开始引入) 和 [`tidb_enable_tso_follower_proxy`](#tidb_enable_tso_follower_proxy-从-v530-版本开始引入) 不兼容。如果 [`tidb_tso_client_batch_max_wait_time`](#tidb_tso_client_batch_max_wait_time-从-v530-版本开始引入) 被设为非零值或者 [`tidb_enable_tso_follower_proxy`](#tidb_enable_tso_follower_proxy-从-v530-版本开始引入) 被启用,则该变量不生效,并按照 `DEFAULT` 模式工作。
> - `PARALLEL``PARALLEL-FAST` 这两种模式主要用于降低 TiDB TS 操作的平均耗时。对于某些延迟波动较大的情况,如长尾、尖刺问题,这两种模式可能不能带来显著的性能改善


### `tidb_ttl_delete_rate_limit` <span class="version-mark">从 v6.5.0 版本开始引入</span>
Expand Down

0 comments on commit 8c5fe7f

Please sign in to comment.