段的结构 (4)---独立表空间结构(三十)

简介: 段的结构 (4)---独立表空间结构(三十)

前面我们说到了,为了方便管理区,区又分为free碎片空闲区,free_frag有剩余页的碎片空闲区,full_frag无剩余页的碎片空闲区,fseg附属于某个段的整个区。

当存入数据时候不是在遍历,而是先从free_frag的extent descriptor entry ,简称xdes Entry的链表是否为空,空的话则从free的xdes entry链表申请新的碎片区,升级到free_frag,修改state状态,每个里面有一个特定的segmentId。

Fseg分了区分出某个段的区,里面又分为free的xdes entry链表,not_free的xdes entry链表,及其full的xdes entry区,当出现32个完整碎片区时候,就会先判断当前段的not free链表是否为空。

一个索引分为叶子节点段,和非叶子节点段,一个段又有三个xdes entry链表,所以2个索引又4个段,12个链表,表直属空间结构也有三个extend descriptor enrty链表,所以一共15个xdes entry。

区的分类&XDES Entry(3)---独立表空间结构(二十九)


段的结构


我们都知道段包含零碎的页面又包含完整的区组成。每个区都又xdes entry来记录区的属性位子,mysql为了记录段的属性,就设计了INODE entry来记录。

segmentId:8个字节,段唯一的id编号。

not_full_n_used:4个字节,这个字段表示在not_full链表中已经使用多少个页面。

三个list_base_node:分别记录了三个段链表,free链表(16个字节),not_full链表(16个字节),full链表(16个字节)。

Magic Number:4个字节,用来标记inode entry是否被初始化,(初始化:吧各个字段的值都填进去)。规定了,当这个字段的值是97937874,则被初始化,否则没有被初始化。

Fragment Array Entry:这里是一些零散页面和一些完整区的集合,每个fragment array entry都对应着一个零散页面。

到目前为止,我们已经清楚了表空间,区段,xdes entry,inode entry等链表的基本概念,那每个区对应的xdes entry到底存在表空间什么地方?直属于表空的free,free_frag,full_frag链表又存在什么地方?每个段的inode entry又存在表空间的什么地方?我们前面说了一个页16kb,64个页为一个区,256个区为一个组,别急,接下来从页慢慢分析。


FSP_HDR类型


首先看第一组的第一个页面,页号为0,extent0,当然也是表空间的第一个页面,页面类型是FSP_HDR,存储着表空间内的一些整体属性和第一组内256个区对应的xdes entry结构。

一个完整的FSP_HDR类型页面大致由五个部分组成:

file_header:38个字节,页的一些通用信息。

file_space_header:112个字节,表空间的一些整体属性信息。

xdes_entry:10240字节,存储本组256个区对应的属性信息。

entry_space:5986字节,用于页结构的填充,没啥实际意义。

file trailer:8个字节,效验是否完整。

相关文章
|
SQL 存储 关系型数据库
|
存储 传感器 Linux
Linux应用开发基础知识——I2C应用编程(十二)
Linux应用开发基础知识——I2C应用编程(十二)
592 0
Linux应用开发基础知识——I2C应用编程(十二)
|
11月前
|
网络协议 Linux 网络性能优化
Linux基础-socket详解、TCP/UDP
综上所述,Linux下的Socket编程是网络通信的重要组成部分,通过灵活运用TCP和UDP协议,开发者能够构建出满足不同需求的网络应用程序。掌握这些基础知识,是进行更复杂网络编程任务的基石。
401 1
|
6月前
|
数据采集 人工智能 搜索推荐
DeepSeek引入教学:思考惰性之辩与生成式人工智能认证的就业赋能
本文探讨了生成式人工智能(GAI)工具DeepSeek在教育领域的应用及其可能引发的学生“思考惰性”问题。文章分析了DeepSeek的优势与挑战,强调合理引导和规范使用的重要性,并提出通过优化教育环境、提升教师素养等策略缓解思考惰性。同时,文章指出生成式人工智能认证(GAI认证)在提升就业竞争力、促进职业发展方面的积极作用,为未来GAI技术在教育中的广泛应用提供了展望与建议。
|
11月前
|
JavaScript
Vue 的父组件和子组件生命周期钩子执行顺序
在 Vue 中,父组件和子组件的生命周期钩子执行顺序如下:
ncnn中Yolov3DetectionOutput层各个参数的含义
ncnn中Yolov3DetectionOutput层各个参数的含义
81 1
|
机器学习/深度学习 存储 程序员
C语言编辑器
C语言编辑器
900 0
|
Web App开发 编解码 网络协议
WebRTC SDP 详解和剖析
WebRTC 技术体系中,SDP 是看起来简单却坑非常多的点,就像直播中的时间戳几乎占据了 80% 的问题,SDP 也是问题频发的点。这篇文章详细分享了 SDP 的关键点,容易出问题的点,是非常实用的满满的干货。
WebRTC SDP 详解和剖析
|
JavaScript
学习TypeScrip8(Class类)
使用 private 修饰符 代表定义的变量私有的只能在内部访问 不能在外部访问
154 0
学习TypeScrip8(Class类)