一、前言:
本文通过打开和修改postgresql 数据库中的表文件,理解pg数据库中存储管理之外存管理smgr实现机制。
二、smgr 实现机制
smgr 实现机制如下图所示:

smgr对外封装了各种辅助存储介质的管理,但目前源代码中只实现了磁盘存储器的管理;smgr的接口函数在smgr.c文件中,而其中很多的接口其实是直接调用磁盘存储管理器的操作(md.c),磁盘存储管理器只是对虚拟文件描述符进行操作,而实际对物理文件的操作是通过 fd.c 中的函数实现的。
三、代码实现:每一层的主要数据结构
smgr.c ----> SMgrRelationData
----> SMgrRelation
----> SMgrRelationHash
SMgrRelationData 是最基本的数据结构,表征了一个表文件;

本文深入探讨了POSTGRESQL数据库的外存管理,特别是smgr模块的实现机制。smgr封装了不同存储介质的管理,目前主要关注磁盘存储。它通过SMgrRelationData、SMgrRelation和VfdCache等数据结构,实现表文件的高效打开、读取和写入。smgropen()、smgrcreate()和smgrwrite()等函数在smgr.c和md.c中定义,涉及实际物理文件操作的部分在fd.c中完成。
最低0.47元/天 解锁文章
804

被折叠的 条评论
为什么被折叠?



