炼气期DBA
(Ti D Ber Ic01xw Vm)
1
Follower 副本选择策略
Follower Read 不会破坏 TiDB 的 Snapshot Isolation 事务隔离级别。TiDB 在第一次选取副本时会根据 tidb_replica_read 的配置进行选择。从第二次重试开始,TiDB 会优先保证读取成功,因此当选中的 follower 节点出现无法访问的故障或其他错误时,会切换到 leader 提供服务。
leader
- 选择 leader 副本进行读取,不考虑副本位置。
closest-replicas
- 当和 TiDB 同一个 AZ 的副本是 leader 节点时,不使用 Follower Read。
- 当和 TiDB 同一个 AZ 的副本不是 leader 节点时,使用 Follower Read。
closest-adaptive
- 如果预估的返回结果不够大,使用
leader 策略,不进行 Follower Read。
- 如果预估的返回结果足够大,使用
closest-replicas 策略。
请问"当和 TiDB 同一个 AZ 的副本不是 leader 节点时" 这句话如何理解呢?
什么叫和tidb同一个AZ的副本?
这文档是不是少了一个leader-and-follower?
1 个赞
克里克里克
(Ti D Ber H052ej9m)
2
我的理解是。
这种是多中心的,tidb和要读取的KV在一个中心,leader和tidb在一个中心就读leader,不在一个中心就使用follower read。
2 个赞
yg_2024
(yangguang)
3
情况1:当TiDB和region的leader节点在同一个AZ,直接读leader
3个策略:
1、仅 读leader
2、仅 就近读取
3、自适应 就近读取
1 个赞
wbslxw
(Ti D Ber Cl S0j Eng)
4
Follower Read 全程依然保证Snapshot Isolation 快照隔离级别,不会出现脏读;如果选中的 Follower 故障不可访问,会自动切回 Leader 保障查询成功。
1 个赞
https://docs.pingcap.com/zh/tidb/stable/follower-read/
请问"当和 TiDB 同一个 AZ 的副本不是 leader 节点时" 这句话如何理解呢?
什么叫和tidb同一个AZ的副本?
这文档是不是少了一个leader-and-follower?
1 个赞
TiDB 节点所在可用区,同一 AZ 里部署的这台 TiKV 副本,就是和 TiDB 同 AZ 副本。
狂拽瘸子好腿
(Ti D Ber 8u Uk Olqy)
10
同 AZ 副本:TiDB 和存放 Region 副本的 TiKV 节点zone标签一致、处于同一可用区的 Region 副本;
TiDB_001
(Ti D Ber No L Znn Vd)
11
这里的"同一个 AZ 的副本"指与发起查询的 TiDB 节点部署在同一可用区的那个 Region 副本。closest-replicas 策略下:若这个就近副本恰好是 leader,直接走 leader 读、不算 Follower Read;若就近副本是 follower,则对它做 Follower Read 以就近降低跨 AZ 延迟。文档没漏项,它是按"就近副本的角色"分两种情况描述,不需要 leader-and-follower 这一项。