【 TiDB 使用环境】生产环境 /测试/ Poc
测试环境
【 TiDB 版本】
v6.5.3
【复现路径】
- 设置 placement_rule 如下
[
{
"group_id": "pd",
"id": "1",
"start_key": "",
"end_key": "",
"role": "voter",
"is_witness": false,
"count": 2,
"label_constraints": [
{
"key": "disk_type",
"op": "in",
"values": [
"ssd"
]
}
],
"location_labels": [
"host"
],
"isolation_level": "host",
"create_timestamp": 1706696121
},
{
"group_id": "pd",
"id": "2",
"start_key": "",
"end_key": "",
"role": "follower",
"is_witness": false,
"count": 1,
"label_constraints": [
{
"key": "disk_type",
"op": "in",
"values": [
"mix"
]
}
],
"location_labels": [
"host"
],
"isolation_level": "host",
"create_timestamp": 1706696121
}
]
- 启动 8 个节点,其中 3 个节点 label disk_type=mix, 另外 5 个节点 label 为 disk_type=ssd, 然后灌入数据,可以观察到 mix 节点上没有 leader,这里是符合预期的。
- 强制下线其中一个 mix 节点,然后发现 down-peer 一直很高,未能恢复
- 在 disable placement-rule 之后 down-peer 开始正常恢复
我不知道这是 placement rule 本身实现的逻辑有问题导致的副本无法补全还是我的 policy 导致它无法补全