TiDB数据库概述——PD

本文深入探讨了TiKV集群中PD(Placement Driver)的角色及其关键功能,包括元数据存储、全局ID分配、时间戳生成及集群调度等。此外,还介绍了TSO分配机制、调度原理、Label配置对高可用性的影响,以及TiDB数据库的SQL执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PD

  • PD的架构与功能
  • TSO的分配
  • PD的调度原理
  • label的作用

PD的架构

image-20221122155040582

PD的个数一般是奇数个的。

PD的主要功能:

  • 整个集群TiKV的元数据存储
  • 分配全局ID和事务ID
  • 生成全局时间戳TSO
  • 收集群信息进行调度
  • 提供label,支持高可用
  • 提供TiDB Dashboard

路由功能

用key读数据的时候,去PD找在哪一个region。为了避免每次找,将结果缓存在TiKV Client的Region Cache的当中。

backoff:如果leader变了,Region Cache就要重新载入。

image-20221122162240488

TSO分配

TSO:int64的一个整型数,1ms分成262144个TSO

分配过程:

image-20221122164859649

PD Client有一个批处理的功能,将一段时间内的一并发送。

时间窗口:解决性能的问题的方法,讲一段时间的TSO放入缓存,让TiDB Server排队选用。

高可用:会有一段TSO断层,

调度

靠心跳返回的信息,进行信息收集。均衡Region,存储均衡,读写均衡。

Label与高可用

image-20221122175024663

多数的region掉了就不可用了。不同的region分布对可用性是有影响的。

Label的配置:PD,TIKV配置

zone:哪个DC上

image-20221122175914530

隔离级别:副本的分布

TiDB数据库SQL执行流程

DML语句流程概要

image-20221122180618059

image-20221122180903003

DDL语句流程概要

image-20221122181215912

除了加索引,都放入:job queue,加索引放入:add index queue

哪个是owner,哪个执行DDL执行job

SQL的Prase 与 Compile

image-20221122181528608

读取的执行

image-20221122181948237

KV是点查,复杂的查询通过DistSQl转化成简单SQL对单表的查询。

snap shot:特定时间点的一个结构。

可以进行并行查询。

root task:由TiDBServer来执行

cop task:由TiKV的Coprocessor来执行

写入的执行

先将数据读入到memBuffer。

image-20221122185736541

image-20221122191818202

DDL的执行

image-20221122192116597

DDL语句不是并行的,owner会定期的去执行job queue的job,执行完会放入history queue。owner是轮询,由PD控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万伏小太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值