当前位置: 首页 > news >正文

【赵渝强老师】TiDB PD集群存储的信息

在这里插入图片描述

TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(Hybrid Transactional and Analytical Processing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(Online Transactional Processing)、OLAP(Online Analytical Processing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。

一、 TiDB的体系架构

在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。对应的架构图如下:
在这里插入图片描述

通过使用TiKV存储引擎支持OLTP的应用场景,而通过使用TiFlash存储引擎支持OLAP的应用场景。在TiDB数据库分布式集群中主要包含三个子集群:

  • 1、存储集群:

该子集群负责数据的存储,其中又有行存引擎和列存引擎两种不同的存储方式:行存引擎指的是TiKV节点,它最终将数据存入底层的RocksDB中;列存引擎指的是TiFlash节点,它从TiKV节点中实时同步数据,这样的TiFlash节点也可以有多个。

  • 2、调度集群:

调度集群中的每个节点叫做PD Instance,也叫做PD实例。存储集群会将数据存储位置等元信息存入调度集群中。

  • 3、计算集群:

该子集群中可以包含多个TiDB Instance,即:TiDB实例。计算集群负责接收客户端发送的SQL语句,并访问PD集群获取数据存储位置和集群的时间戳TSO等信息,最终将SQL语句转换成Key-Value的键值操作,从而访问存储在存储集群中的数据。

《TiDB数据库从零开始》

二、 TiDB PD集群存储的信息

Placement Driver(简称PD)是TiDB里面全局中心总控节点,是整个集群的管理模块,负责整个集群的调度。TiDB作为一个分布式高可用存储系统,系统需要具备多副本容错,动态扩容、缩容,容忍节点掉线以及自动错误恢复的功能。为了满足这些功能,TiDB就需要收集足够的信息,比如每个节点的状态、每个Raft Group的信息等。PD根据这些信息以及调度的策略,制定出尽量满足这些需求的调度计划,并提供基本操作来完成这个计划。PD的主要工作体现在以下三个方面:

  • 存储集群的元信息,例如:Region存储在哪个TiKV节点;
  • 对TiKV集群进行调度和负载均衡,如:数据的迁移、Raft Group Leader的选举等;
  • 分配全局唯一且递增的事务ID。
视频讲解如下

【赵渝强老师】TiDB PD集群存储的信息

PD的调度功能依赖于整个集群信息的收集,简单来说,PD需要知道每个TiKV节点的状态以及每个Region的状态。TiKV集群会向PD汇报以下两类消息:

  • 每个TiKV节点会定期向PD汇报节点的状态信息

TiKV节点(也叫Store)与PD之间存在心跳包,一方面PD通过心跳包检测每个Store是否存活,以及是否有新加入的Store;另一方面,心跳包中也会携带这个Store的状态信息,主要包括:
(1)总磁盘容量
(2)可用磁盘容量
(3)承载的Region数量
(4)数据写入/读取速度
(5)发送/接受的Snapshot数量(副本之间可能会通过Snapshot同步数据)
(6)Store是否过载
(7)labels标签信息(标签是具备层级关系的一系列Tag,能够感知拓扑信息)

通过使用命令行工具pd-ctl可以查看到TiKV Store的状态信息。

  • 每个Raft Group的Leader会定期向PD汇报Region的状态信息

每个Raft Group的Leader和PD之间存在心跳包,用于汇报这个Region的状态,主要包括下面几点信息:
(1)Leader的位置
(2)Followers的位置
(3)掉线副本的个数
(4)数据写入/读取的速度

《TiDB数据库从零开始》

http://www.dtcms.com/a/549178.html

相关文章:

  • 开源启航,智算未来:超算开源社区重磅亮相CNCC 2025
  • 如何做登陆界面的网站百度关键词点击工具
  • linux-centos开机自动执行脚本
  • java面试题(没有答案)
  • 浏览器端实时语音采集 + WebSocket 传输 + 后端 Whisper + GPT 翻译 + 实时字幕返回
  • 亚马逊巴西拓宽当日达覆盖区域,配送门槛大幅下调
  • 《UniApp 安全区适配与自定义导航栏全攻略》
  • 邯郸住房及城乡建设部网站有专门做ppt的网站有哪些
  • Spring Boot3零基础教程,Lambda 表达式的使用,笔记96
  • Rust入门开发之Rust 语法中函数基本形式详解
  • 【机器学习】管道化与自动化建模
  • LangChain Few-Shot Prompt Templates(two)
  • Spring Al学习3:Prompt
  • 网站优化外链贵州互联网公司
  • 宿迁做网站哪家好做网站要注意哪些
  • 打造属于你的 Telegram 中文版:汉化方案 + @letstgbot 搜索引擎整合教程
  • web--请求响应、分层解耦
  • 做进化树的在线网站东莞软文推广
  • 从零开始的云原生之旅(八):CronJob 实战定时清理任务
  • Python自动化测试 | 快速认识并了解pytest的基本使用
  • 网站备案增加域名天津招聘网人才招聘官网
  • 有什么做外贸的好网站直播网站app下载
  • seo网站改版方案怎么写如何做网站内部优化
  • 找婚庆公司去什么网站亚马逊雨林动物大全
  • 基于百度地铁 API 的长沙地铁站点详情查询与路线导航实践
  • C# 继承
  • Ubuntu 24.04 从源码编译 dcgm-exporter
  • 【软件测试基础】详解数据库核心操作:增删改查,及测试关注点
  • 建网站服务厦门市建设路网站
  • 大模型-多模态机器学习