TIDB SERVER 的架构

1.TIDB SERVER 的架构 

PD
------------------------------------------
TIDBSERVER 
协议层|解析器|编译器 |GC控制 
执行器 |DistSQL
Transaction|KV 
PD client|TIKV client 
schema load|worker|start job 
缓存|catch table 
------------------------------------------
TIKV  

TIDB SERVER 是TIDB数据库的核心组件之一,承担着接收客户端请求,执行SQL语句并返回结果的任务。
TIDB SERVER 的主要模块
(1)SQL层 
处理客户端的请求并解析SQL语句,生产执行计划。此模块使用解析器和编译器对SQL进行解析和优化。
(2)分布式事务管理 
处理分布式事务,包括分布式ACID事务的实现,并通过两阶段提交协议保证事务的原子性和一致性。
(3)GC控制 
为了实现多版本并发控制,TIDB SERVER 使用了后台GC进程,负责回收过期的数据,并为读取操作提供 
可见性。
(4)优化器 
在TIDB SERVER 中可以使用不同的引擎来处理SQL语句,如TIKV存储引擎,内存表引擎或Tiflash引擎。
可以根据业务需求进行选择。

2.TIDB SERVER 的主要功能

(1)处理客户端的连接 
TIDB SERVER 提供了与客户端建立连接的能力。当客户端发起连接请求时,协议层模块负责处理请求,
进行用户认证并确保连接的安全性。该模块还负责为连接的用户分配合适的权限,以控制其对数据库
的访问范围和操作权限。
(2)SQL语句的解析和编译 
TIDB SERVER 接收到客户端发送的SQL语句后,解析器和编译器模块负责解析和编译这些语句。解析器
将SQL语句分为语法树和表达式等基本结构,然后编译器将语法树转为执行计划。编译过程中,
TIDB SERVER 还会进行优化,例如查询重写,使用索引等,以提高查询性能。
(3)关系型数据与键值的转换
由于TIKV存储底层使用了键值对的结构,而关系型数据库以表的形式组织数据,因此TIDB SERVER 需要 
将关系型数据和键值对结构进行转换。该过程由转换器模块完成,它负责将关系型结构(表和索引)
映射到相应的键值对结构,并处理相关的数据类型转换,数据序列化等操作。
(4)SQL语句的执行 
根据编译好的执行计划,TIDB SERVER 将SQL任务分发给TIKV进行执行。其中,执行器模块负责查询 
操作的执行,它将执行计划转化为实际的查询操作,包括数据的读取和处理;而DistSQL模块负责分布式
场景下的查询执行,将查询任务分为多个子任务并在分布式环境中执行。同时transaction 模块负责事务 
处理相关的操作,包括事务的隔离性,一致性和持久性,确保数据库的数据完整性和可靠性。
(5)在线DDL执行 
TIDB SERVER 支持在线DDL 操作,即在不锁定表的情况下进行表结构的变更。这一特性得益于 schema load 模块 
worker模块和start job 模块的协同工作。当执行DDL操作时,schema load 模块会加载元数据并对其进行验证,
worker 模块负责执行实际的DDL任务,而start job 模块会启动后台任务来确保DDL操作的顺利完成。
(6)垃圾回收 
为了回收已经过期的老版本数据,TIDB SERVER 配备了GC控制模块。该模块会定期检查数据库中
不再使用的数据,并将其标记为可回收状态,随后,通过后台进程对这些标记的数据进行回收操作,
以释放存储空间并提高数据存储效率。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值