TiDB进阶篇-TiDB Server架构

news/2024/11/29 11:43:20/

简介

较深入的介绍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.ppmy.cn/news/41980.html

相关文章

Windows10系统安装perl命令

文章目录1,下载ActivePerl 5.28(基于Windows 10系统):1.1,Perl 主页: https://www.perl.org/get.html1.2,选择windows1.3,选择Binaries---activeperla版本1.3,直接选择windows 5.36版…

natapp + nginx 实现内网穿透

环境是我本地的win10 第一步:下载nginx压缩包并解压(这个自行百度吧) 第二步: 修改nginx的配置文件: 在最下方添加: #testserver {listen 8081;#你要映射的端口server_name localhost; #使用本地IPlocation / {proxy_pass…

减半技术实现求a的n次幂

目录 减半技术实现求a的n次幂 程序设计 程序分析 减半技术实现求a的n次幂 【问题描述】给定两个正整数a和n,采用减半技术求a的n次幂;其中a<100,b<20; 【输入形式】两个整数a,n(a与n中间用空格隔开); 【输出形式】一个整数 【样例输入1】2 3 【样例输出1】8 【样…

TiDB实战篇-TiDB配置

简介 熟系TiDB的配置相关。 TiDB的大体参数 系统配置对应的是TiDB-Server,PD和TiKV和TiDB-Server基本在集群配置里面配置。 系统配置 系统变量 | PingCAP 文档中心 集群配置 PD 配置文件描述 | PingCAP 文档中心 配置的存储位置 系统配置存储在TiKV中的&#xff0c;集…

接口自动化测试面试常问的题目及答案,你都会了吗?

目录 前言 接口自动化测试的优势是什么&#xff1f; 你使用过哪些接口自动化测试工具&#xff1f; 你如何设计一个接口自动化测试用例&#xff1f; 接口自动化测试中常见的测试类型有哪些&#xff1f; 你如何解决接口自动化测试中遇到的问题&#xff1f; 如何进行接口自动…

竞赛雷速登,绝顶我为峰

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 【题目背景】 为庆祝华中农业大学第十二届程序设计竞赛&#xff08;校赛&#xff09;线下举办&#xff0c;特出此题&#xff0c;仅表感激涕零之情。 希望参赛选手认真思考&#xff1…

【ERNIE Bot】百度 | 文心一言初体验

文章目录一、前言二、文心一言介绍三、申请体验⌈文心一言⌋四、⌈文心一言⌋初体验1️⃣聊天对话能力2️⃣文案创作能力3️⃣文字转语音能力✨4️⃣AI绘画能力✨5️⃣数理推理能力6️⃣代码生成能力7️⃣使用技巧说明五、总结一、前言 ​ 最近有关人工智能的热门话题冲上热榜…

Baumer工业相机堡盟工业相机如何通过BGAPISDK里的图像处理库进行图像的转换(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里的图像处理库进行图像转换&#xff08;C#&#xff09;Baumer工业相机Baumer工业相机的SDK里图像格式转换的技术背景Baumer工业相机通过BGAPI SDK进行图像转换调用BGAPI SDK的图像转换库ImageProcessor调用BGAPI SDK建立图像调用BG…