从零开始学TiDB(6)深入学习Placement Driver(PD)

一.PD整体架构

PD的功能:

  1. 元数据的存储(解决执行计划如何得知去哪个region中获取数据)
  2. 全局时钟:查询开始时间,事务开始,结束的时间。
  3. 分配全局ID和事务ID
  4. 对region进行调度(热点region的调度处理)
  5. 提供label,支持高可用
  6. 提供TiDB Dashboard

1.PD 的路由功能

要想知道ledaer region在哪个TIKV,这时候需要问PD节点

但这时候有可能 根据region Cache获取的 leader region有误(可能由于热点region调度,也可能由于region分裂)。这时候请求TiKV 会返回信息,region不在这个TiKV上,在其它节点,TiKV Client再访问其它节点,并更新region cache。 这个过程叫Back off

2.PD的TSO分配

TSO (physical time local time) 课程里是叫这个名字。但很奇怪,为什么官网文档TSO的命名是TimeStamp Oracle??

什么是TSO?

TSO的分配

首先TSO的分配涉及到TiDB Server 和 PD组件

但如果此时TSO有一百个请求,PD Client不会 一次次的请求PD,则PD Client会把这一百个请求变成一个批处理请求发送给PD

相关优化:

PD leader解决性能问题的方法

PD 的高可用

如果此时TiDB Server请求的是704

此时PD ledaer宕机,则切换leader PD,开始一次新的3s计时(即TiDBServer 请求的TSO会有断层,代表此时PD leader 宕机了) ,即保证不了连续性。

三.调度

1.信息调度

2.生成调度

PD 会关注下面的信息,生成调度(operator)。

3.执行调度

PD把调度信息直接发送给region,让region拿着operator 进行调度

四.Label

如果多个region同时失效,则可能会导致数据丢失,这时候可以认为的调整region的分布。这时候需要用到Label。这和Oceanbase 的Zone的逻辑概念有些类似。

给region打标签需要配置两个组件,分别是TiKV 和PD

给region打标签后PD就知道region在哪个数据中心,哪个机房的哪个机架。

相关推荐
寒秋花开曾相惜2 小时前
(学习笔记)3.8 指针运算(3.8.3 嵌套的数组& 3.8.4 定长数组)
java·开发语言·笔记·学习·算法
是翔仔呐2 小时前
第11章 显示外设驱动:I2C协议OLED屏、SPI协议LCD屏字符/图片/中文显示
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
_李小白2 小时前
【AI大模型学习笔记之平台篇】第五篇:Trae常用模型介绍与性能对比
人工智能·笔记·学习
承渊政道3 小时前
【优选算法】(实战体会位运算的逻辑思维)
数据结构·c++·笔记·学习·算法·leetcode·visual studio
AI-Ming3 小时前
程序员转行学习 AI 大模型: 踩坑记录:服务器内存不够,程序被killed
服务器·人工智能·python·gpt·深度学习·学习·agi
m0_716765233 小时前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
2501_945318493 小时前
零基础学习AI的选型指南:CAIE认证与编程型AI认证如何取舍
人工智能·学习
承渊政道3 小时前
【优选算法】(实战推演模拟算法的蕴含深意)
数据结构·c++·笔记·学习·算法·leetcode·排序算法
Keep learning!4 小时前
PCA主成分分析学习
学习·算法
浮白载笔的夜晚4 小时前
【科普向】模拟电路(Analog Circuits)与射频电路(RF Circuits)的区别
学习