TiDB Server简介

【是否原创】是
【首发渠道】TiDB 社区
【正文】

本章一起来看下TiDB Server的架构以及它的主要进程和作用,首先看下体系结构图:

其次,一起在回顾一下TiDB Server的六大主要功能:
1、处理客户端连接
2、SQL语句的解析和编译
3、关系型数据与KV的转化
4、SQL语句的执行
5、在线DDL的执行
6、垃圾回收

一、SQL语句的解析和编译之解析(Parse)


从图中很清晰看到解析的执行过程!

二、SQL语句的解析和编译之编译(Compile)


编译工作过程一目了然,期间获取了元数据和统计信息,最终生成执行计划!

三、SQL读写模块


这里需要关注一下:PD Client和TiKV Client两个默默无闻的小模块。

四、在线DDL相关模块


这里需要注意的是:tidb的在线ddl之所以很快,是因为将在线ddl操作放到了job queue中,根据队列中优先顺序以及其他条件去执行,执行后的job最终放到history queue中。

五、GC机制和相关模块


TiDB 采用 MVCC 的方式来进行并发控制。当对数据进行更新或者删除时,原有的数据不会被立刻删除,而是会被保留一段时间,并且在这段时间内这些旧数据仍然可以被读取。这使得写入操作和读取操作不必互斥,并使读取历史数据成为可能。

存在超过一定时间并且不再使用的版本会被清理,否则它们将始终占用硬盘空间,并对性能产生负面影响。TiDB 使用一个垃圾回收 (GC) 机制来清理这些旧数据。

六、TiDB Server的缓存
1、TiDB Server缓存组成
SQL结果、线程缓存、元数据和统计信息
2、TiDB Server缓存管理
tidb_mem_quota_query、oom-action

1 个赞