TiDB进阶篇-TiDB Server架构

news2025/1/21 0:56:45

简介

较深入的介绍TiDB Server。

TiDB Server 架构

图解

1.下面是负责SQL语句的解析和优化。

2.下面试负责TiKV存储多版本,过期版本的清理作用。

3.复杂SQL的拆分(如果是点查那么就不需要经过DistSQL)。

4.事务相关。

5.负责PD和TiKV的通信功能。

6.负责Online DDL。(保证不会阻塞线上的读写操作)

7.一些认证信息的缓存,和数据的缓存(cache table 是缓存小表的作用)。

主要功能

SQL语句的解析和编译

1.下图是生成AST语法树的过程。

2.解析SQL的正确性,下面的物理优化,会根据表的统计信息,来决定是走全表扫描还是走索引查询,下面的元数据缓存是从PD查询过来的缓存,包括数据的位置等等信息

关系表装换KV存储

 1.下图是一张聚簇表,由于编号为1的可能很多表都有,所以前面加了一个表的编号确定唯一性。

2.region的切分(默认一个region是96M,如果之前的region有修改的操作96M变成144M的时候会在进行切分)。 

SQL读写相关模块 

 

  • 如果是简单的查询,那么就是走KV模块。
  • 如果是复杂的查询,那么就是走DisSQL模块。
  • 如果有事务相关,那么就是走Transaction模块。 

在线DDL相关模块

 

客户端提交DDL请求给start job,然后TiDB Server之前会选择出一个owner来执行TiKV的job。从而执行在线的DDL操作。

GC机制与相关模块

 

 在TiKV里面保存的数据有多个版本的情况,这个时候我们不太需要执行的版本的时候,TiDB Server就会启动GC的机制,清楚不需要的历史版本。它保存的时间点有一个safe point。

TiDB Server的缓存

SQL结果的缓存是一些多表的join操作,对于缓存的使用量就比较大。

还有相关事务的操作,所有相关事务的操作都会放在缓存中。

tidb_mem_quota_query(查询使用的缓存)

oom-action(当缓存操作tidb_mem_quota_query以后会有什么执行操作)

热点小表缓存

热点小表缓存原理 

满足小表缓存的前提是表的大小在64M之内。

tidb_table_cache_lease=5;表示这个5秒的时间内可以在缓存中读取缓存的表,没有必要在向TiKV查找数据,在5秒内,所有用户不能够修改TiKV的数据,这要保证缓存和TiKV的实际数据是数据一致的。

5秒以后,可以进行修改操作在TiKV里面,后面的读操作也是在TiKV里面。

 

修改完数据以后,TiKV的数据会重新的写到小表缓存中。 

注意事项 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js 事件流程

描述 JavaScript 的执行是单线程的,后面的任务需要等待前面的任务完全完成后,再去执行。DOM 事件(文件的加载等)、定时器、网络请求等事件,并不会消耗 CPU,这些事件无需等候,所以出现了异步。主…

Java后端新人入职第一天,环境搭建,全看这篇就行了

本文主要是记录一下一个新人java后端开发来到一个新公司,如何快速将自己的相关开发环境搭建好,包括Java、Maven、Tomcat、idea、Redis、Mysql等等,有的公司会有相关版本的要求,不过安装配置步骤基本一样的,我这里就以目前比较流行的版本进行详细说明。 一:基础环境搭建:…

Arduino开发之如何连接GPS模块?

文章目录0、引言1、GPS模块说明2、接调试助手测试GPS模块接收数据3、代码编写4、功能演示0、引言 NEO-6M/7M GPS模块,具有高灵敏度、低功耗、小型化、高追踪灵敏度,大大扩大了其定位的覆盖面,在普通GPS接收模块不能定位的地方,如狭…

编译原理考试大题分析【太原理工大学】

有些基本公式可以看这里,大题内容请以本篇为准!https://blog.csdn.net/m0_52861684/article/details/130071191?spm1001.2014.3001.5501 之前说错了,考试题型没有简答题和填空题,只有十个选择题是 20 分,其余全是大题…

ESP32设备驱动-VEML6075紫外线(UV)光传感器驱动

VEML6075紫外线(UV)光传感器驱动 文章目录 VEML6075紫外线(UV)光传感器驱动1、VEML6075介绍2、硬件准备3、软件准备4、驱动实现1、VEML6075介绍 VEML6075 可感应 UVA 和 UVB 光,并使用 CMOS 工艺将光电二极管、放大器和模拟/数字电路集成到单个芯片中。 应用 UV 传感器时,它…

ChatGPT和GPT-4带你选笔记本电脑

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

最近ChatGPT封号太严重了,这里是解封攻略步骤(建议收藏)

这个周末,先是意大利暂时封杀ChatGPT,限制OpenAI处理本国用户信息。 接着,据韩国媒体报道,三星导入ChatGPT不到20天,便曝出机密资料外泄。 还没结束,又有大量网友发现ChatGPT目前停止注册,开始…

【vue】vue中下载文件的方法

文章目录1. 下载后端返回文件1.1 后端为post请求返回二进制流文件URL.createObjectURLFileReader1.2 后端直接返回get请求文件2. 下载本地文件1. 下载后端返回文件 1.1 后端为post请求返回二进制流文件 Blob Blob对象标识一个不可变、原始数据的类文件对象。Blob表示的不一定…

RabbitMQ( 发布订阅模式 ==> FanoutExchange )

本章目录: 何为发布订阅模式FanoutExchange具体使用一、何为发布订阅模式 在上一篇文章中,我们创建了Work Queue并且发送任务,在Work Queue中,每个任务只会被一个消费者消费,任务消费后就被清除了。 而在本篇中&…

0202心跳和服务续约源码解析-nacos2.x-微服务架构

文章目录1 客户端心跳任务2 服务端处理2.1 服务注册时开启客户端心跳检查2.2 客户端发送心跳任务续约2.3 服务实例移除2.4 心跳任务闭环结语1 客户端心跳任务 在上一篇文章0201服务注册源码解析-nacos2.x-微服务架构分析客户端服务注册的时候,流程在NacosNamingSer…

重装系统下载网址

[置顶]无论会不会安装系统,都一定会需要,觉得内容不错欢迎一键三连哦 稳定 | 方便 | 好用 1、MSDN 用过最简单好用,下载不限速,支持迅雷、IDM多种下载方式 https://www.xitongku.com 2、Windows系统下载仓储站 为小白重装系统提供…

KIOPTRIX: LEVEL 4通关详解

环境配置 vulnhub上下载的文件没有vmx 去3的文件里偷一个 记事本打开把所有Kioptrix3_vmware改成Kioptrix4_vmware 然后网卡地址随便改一下 打开后会提示找不到虚拟机,手动选一下就行了 信息收集 漏洞发现 web一上去就是一个登录框 扫路径发现database.sql 但是密码是错的…

高通开发系列 - linux arm64 toolchain交叉编译器编译错误

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述下载aarch64交叉编译器编译使能编译环境使能defconfig编译问题1:address-of-packed-member问题2:attribute-alias=问题3:array…

Kubernetes 笔记(14)— 滚动更新、定义应用版本、实现应用更新、管理应用更新、添加更新描述

滚动更新,使用 kubectl rollout 实现用户无感知的应用升级和降级。 1. 定义应用版本 在 Kubernetes 里,版本更新使用的不是 API 对象,而是两个命令:kubectl apply 和 kubectl rollout,当然它们也要搭配部署应用所需要…

人工智能作业之遗传算法

遗传算法1.遗传算法定义2.相关术语3.遗传算法的主要步骤4.遗传算法的参数设计原则5.代码实现1.遗传算法定义 遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法&am…

java 婚恋交友网站Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 婚恋交友网站是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

IMX6ULL学习笔记(22)——eLCDIF接口使用(TFT-LCD屏显示)

一、TFT-LCD简介 TFT-LCD(Thin Film Transistor-Liquid Crystal Display) 即薄膜晶体管液晶显示器。TFT-LCD 与无源 TN-LCD、 STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT)&#…

智慧网点解决方案 | 助推银行“营销-销售-服务”一体化建设

传统网点的智慧化变革已成为新形势下银行创新业务服务模式与产品、优化客户体验、提质增效的一大阵地。如何在网点转型过程中充分发挥边缘计算等新技术的价值,引领行业数字化转型新趋势,成为银行业面临的共同课题。 在传统银行网点向智慧网点的转型过程…

基于Java+SpringBoot+vue的家具销售电商平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】

博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(300套) 目录 一、效果演示 二、…

真00后整顿职场?公司新来了个00后卷王,3个月薪资干到20K.....

最近聊到软件测试的行业内卷,越来越多的转行和大学生进入测试行业。想要获得更好的待遇和机会,不断提升自己的技能栈成了测试老人迫在眉睫的问题。 不论是面试哪个级别的测试工程师,面试官都会问一句“会编程吗?有没有自动化测试…