移动云海山数据库(He3DB)-MySQL关键类之THD

1.整体描述

在MySQL源码注释中,THD是对线程描述的数据结构,每个客户端连接到服务器时都会创建一个单独的线程类(THD)对象为做对线程/连接的整体的描述。
image.png

2.继承关系

父类1:MDL_context_owner 抽象接口代码,用来实现MDL模块和THD以及服务端代码分离。主要有元数据锁的相关接口,含控制和信息通知等。
父类2:Query_arena 看它的元素定义Item * m_item_list,它内部一定维护着一个很大的列表 而Item又继承自Parse_tree_node,所以它内部一定维护着Query语句(存储过程)的相关解析后的元素,也就是抽象语法树的结节。
父类3:Open_tables_state 该类保存线程有关已打开和锁定的表的状态,同时维护了表的信息和和锁信息。其提供了压入和弹出两个状态接口函数来操作这两类状态。
image.png

3.锁相关

MDL_context 元数据锁的上下文,维护元数据的锁,mdl.h代码中有其详细描述:元数据库锁的上下文信息,每个server都有这样一个上下文。
image.png
image.png
THR_LOCK_INFO 线程锁信息,thr_lock.h代码中有其详细描述:拥有锁的线程的描述。此结构的实例的地址用于唯一标识线程。
image.png

4.接口语义相关

Vio:与客户交互的IO相关,channel_info.h代码中定义的typedef结构体
image.png
image.png
LEX:语法解析后的parsed树,解析树描述符
image.png
private的lex类型变量用于保存常规(未准备好的)查询的解析树的lex。 而对于准备和存储过程语句,我们为每个新查询使用自己的lex实例,而对于传统语句,我们重用相同的lex。
image.png
Query_plan中的lex,用于topmost 的声明
image.png

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值