POSTGRESQL 存储管理之外存管理(一)(jung)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言:

    本文通过打开和修改postgresql 数据库中的表文件,理解pg数据库中存储管理之外存管理smgr实现机制。


二、smgr 实现机制

   smgr 实现机制如下图所示:




        smgr对外封装了各种辅助存储介质的管理,但目前源代码中只实现了磁盘存储器的管理;smgr的接口函数在smgr.c文件中,而其中很多的接口其实是直接调用磁盘存储管理器的操作(md.c),磁盘存储管理器只是对虚拟文件描述符进行操作,而实际对物理文件的操作是通过  fd.c  中的函数实现的。



三、代码实现:每一层的主要数据结构

        smgr.c ----> SMgrRelationData 

----> SMgrRelation

----> SMgrRelationHash

SMgrRelationData 是最基本的数据结构,表征了一个表文件;

SMgrRel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值