shonge
(Song)
1
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.7
- 【问题描述】:
请问Placement rule 官网文档中这个规则是什么含义:
cat > rules.json <<EOF
[
{
"group_id": "pd",
"id": "rule1",
"role": "voter",
"count": 3,
"location_labels": ["zone", "rack", "host"]
},
{
"group_id": "pd",
"id": "rule2",
"role": "voter",
"count": 2,
"location_labels": ["zone", "rack", "host"]
}
]
EOF
pd-ctl config placement save --in=rules.json
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
来了老弟
2
字段的具体含义
group_id
标识规则的创建者,不同创建者之间互不影响
id
group 内唯一标识,由创建者自行生成
index
适用多条规则时,控制调度时的适配顺序(group 内生效)
override
是否覆盖 index 更小的规则(group 内生效)
start_key
开始的 key,表示从哪一个 key 开始该规则生效
end_key
结束的 key,表示到哪一个 key 结束该规则就不再生效
role
Raft 算法当中的角色,包括:voter
,leader
,follower
以及 learner
count
所要添加角色的数量,特别的,对于 leader
而言,该值不能大于 1
label_constraints
用于过滤 store 的限制条件,支持通过 in
, notIn
, exists
, notExists
四种原语来筛选 label
location_labels
用于实现根据拓扑进行隔离,与之前的意义相同
shonge
(Song)
3
我的意思是在这个样例配置中,rule1
和rule2
两个规则都生效吗?是创建5个voter
吗?
shonge
(Song)
4
样例中并未设置start_key/end_key,规则是对哪些key生效?
leiysky
(Leiysky)
5
同一个 Group
中 ID
大的 rule 优先级更高,比如 rule2
比 rule1
在字典序上更大,所以是采用 rule2
的策略,即 创建3个voter。
disksing
(disksing)
7
@leiysky 没设置 override 的话,确实是两个规则都生效的哦,也就是会创建出来 5 个副本。
shonge
(Song)
8
system
(system)
关闭
10
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。