From 57856949403d73e4663b11f012d03c898ed95a92 Mon Sep 17 00:00:00 2001 From: glorv Date: Thu, 22 Feb 2024 16:57:27 +0800 Subject: [PATCH] adjust the recommend value of raft election-timeout in multi dc deployment (#16468) --- dr-multi-replica.md | 4 ++-- geo-distributed-deployment-topology.md | 12 ++++++++---- three-data-centers-in-two-cities-deployment.md | 12 ++++++++---- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/dr-multi-replica.md b/dr-multi-replica.md index 117c6f8d5b52..5f9bd6184437 100644 --- a/dr-multi-replica.md +++ b/dr-multi-replica.md @@ -71,8 +71,8 @@ summary: 了解 TiDB 提供的基于多副本的单集群容灾方案。 config: server.labels: { Region: "Region3", AZ: "AZ5" } - raftstore.raft-min-election-timeout-ticks: 1000 - raftstore.raft-max-election-timeout-ticks: 1200 + raftstore.raft-min-election-timeout-ticks: 50 + raftstore.raft-max-election-timeout-ticks: 60 monitoring_servers: - host: tidb-dr-test2 diff --git a/geo-distributed-deployment-topology.md b/geo-distributed-deployment-topology.md index be470e99651f..2fe3770245d1 100644 --- a/geo-distributed-deployment-topology.md +++ b/geo-distributed-deployment-topology.md @@ -131,8 +131,8 @@ tikv_servers: host: host1 readpool.storage.use-unified-pool: true readpool.storage.low-concurrency: 10 - raftstore.raft-min-election-timeout-ticks: 1000 - raftstore.raft-max-election-timeout-ticks: 1020 + raftstore.raft-min-election-timeout-ticks: 50 + raftstore.raft-max-election-timeout-ticks: 60 monitoring_servers: - host: 10.0.1.16 grafana_servers: @@ -175,10 +175,14 @@ grafana_servers: - 防止异地 TiKV 节点发起不必要的 Raft 选举,需要将异地 TiKV 节点发起选举时经过最少的 tick 个数和最多经过的 tick 个数都调大,这两个参数默认设置均为 `0`。 ```yaml - raftstore.raft-min-election-timeout-ticks: 1000 - raftstore.raft-max-election-timeout-ticks: 1020 + raftstore.raft-min-election-timeout-ticks: 50 + raftstore.raft-max-election-timeout-ticks: 60 ``` +> **注意:** +> +> 通过 `raftstore.raft-min-election-timeout-ticks` 和 `raftstore.raft-max-election-timeout-ticks` 为 TiKV 节点配置较大的 election timeout tick 可以大幅降低该节点上的 Region 成为 Leader 的概率。但在发生灾难的场景中,如果部分 TiKV 节点宕机,而其它存活的 TiKV 节点 Raft 日志落后,此时只有这个配置了较大的 election timeout tick 的 TiKV 节点上的 Region 能成为 Leader。由于此 TiKV 节点上的 Region 需要至少等待 `raftstore.raft-min-election-timeout-ticks` 设置的时间后才能发起选举,因此尽量避免将此配置值设置得过大,以免在这种场景下影响集群的可用性。 + #### PD 参数 - PD 元数据信息记录 TiKV 集群的拓扑信息,根据四个维度调度 Raft Group 副本。 diff --git a/three-data-centers-in-two-cities-deployment.md b/three-data-centers-in-two-cities-deployment.md index a6f70157ddf1..5bfc6251ce00 100644 --- a/three-data-centers-in-two-cities-deployment.md +++ b/three-data-centers-in-two-cities-deployment.md @@ -113,8 +113,8 @@ tikv_servers: - host: 10.63.10.34 config: server.labels: { az: "3", replication zone: "5", rack: "5", host: "34" } - raftstore.raft-min-election-timeout-ticks: 1000 - raftstore.raft-max-election-timeout-ticks: 1200 + raftstore.raft-min-election-timeout-ticks: 50 + raftstore.raft-max-election-timeout-ticks: 60 monitoring_servers: - host: 10.63.10.60 @@ -174,10 +174,14 @@ tikv_servers: - 优化跨区域 AZ3 的 TiKV 节点网络,修改 TiKV 的如下参数,拉长跨区域副本参与选举的时间,避免跨区域 TiKV 中的副本参与 Raft 选举。 ``` - raftstore.raft-min-election-timeout-ticks: 1000 - raftstore.raft-max-election-timeout-ticks: 1200 + raftstore.raft-min-election-timeout-ticks: 50 + raftstore.raft-max-election-timeout-ticks: 60 ``` +> **注意:** +> +> 通过 `raftstore.raft-min-election-timeout-ticks` 和 `raftstore.raft-max-election-timeout-ticks` 为 TiKV 节点配置较大的 election timeout tick 可以大幅降低该节点上的 Region 成为 Leader 的概率。但在发生灾难的场景中,如果部分 TiKV 节点宕机,而其它存活的 TiKV 节点 Raft 日志落后,此时只有这个配置了较大的 election timeout tick 的 TiKV 节点上的 Region 能成为 Leader。由于此 TiKV 节点上的 Region 需要至少等待 `raftstore.raft-min-election-timeout-ticks` 设置的时间后才能发起选举,因此尽量避免将此配置值设置得过大,以免在这种场景下影响集群的可用性。 + - 调度设置。在集群启动后,通过 `tiup ctl:v pd` 工具进行调度策略修改。修改 TiKV Raft 副本数按照安装时规划好的副本数进行设置,在本例中为 5 副本。 ```