Day 7 - PD架构

身为TIDB的PM,PD主要接收两类讯息,一种是TiKV store回传的心跳信息,store就是TiKV中储存的储存节点,与TiKV是1:1的关系。另一种则是raft group leader回传的心跳信息。
store回传的信息内容包括:

  1. 我(store)还活着!
  2. 有没有新鲜的肝(store)加入
  3. 我最多能存多少,还剩多少空间能放
  4. 身上还背着多少region
  5. 我的读写速度
  6. 发送与接收了多少snapshot
  7. 我还坦得住?吗?
  8. label讯息(可以理解成KV的住址)

leader回传的信息则包括:

  1. leader位置
  2. follower位置
  3. 读写速度
  4. 失联的replicate数量

PD也有另外的接手可以接收手动异动的通知,如维运时下架其中一台store,便可以透过指令pd-ctl通知异动。

PD接收了这些信息之後,就开始提出健检报告。

  1. 有没有符合max-replicas的设定。多了就该砍掉,少了就该补上。
  2. 副本有没有再重复的位置。在多台KV(store)的情况下,正常来说会把副本分散在不同的KV底下。
  3. 每个store储存的副本数量是否取得平衡,已储存的大小是不是有斜杠。
  4. leader是否平均分配在每个store上。前面提到leader负责读写,如果leader都集中在同一个store上,会发生一个人做得要死要活其他人过得爽爽的情况。
  5. 对於抢手的key,leader也会避免放在同一个store上。
  6. 控制调度的速度,以免影响线上。

以上纯属建议,实际主导权还是在leader手上。就像健检报告写着你体脂肪过高,但是要不要放下手中的啤酒盐酥鸡还是要靠你自己...


<<:  WordPress 增加热门文章外挂 - WP-PostViews

>>:  Day1 学习目标与动机

30天学会C语言: Day 24-排序

用於排序的演算法有很多种,其中一种是 气泡排序法 #include<stdio.h> #...

观察 Firefox Chrome 网页 DNS 查询哪些 Domain

观察 Firefox Chrome 网页 DNS 查询哪些 Domain Windows 有工具软件...

柬埔寨的第一印象

大家对柬埔寨的第一印象,大部分是吴哥窟。虽然停留的时间没有去过吴哥窟,但也见识到许多当地文化。 柬埔...

[Day 28] LeetCode - 387 First Unique Character in a String

本篇同步发布於Blog:[解题] LeetCode - 387 First Unique Chara...

[Day30] Vue3 - 条件判断

在没有框架前,条件判断都是写在 Javascript 里面,但是有了 Vue 之後,可以直接在 HT...