加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL的Storage(2)-file 和 smgr

发布时间:2020-12-13 18:03:12 所属栏目:百科 来源:网络整理
导读:smgr 做的很象一个接口,根据README的说明 只要下层实现相应的函数就能用smgr调用。现在的PostgreSQL中只剩md了。 file包含两个文件,一个buffile,一个fd。 fd可以说是最底层的了,函数都是直接调用open,close,read,write,lseek的。我开始还以为fd在smgr上

smgr 做的很象一个接口,根据README的说明 只要下层实现相应的函数就能用smgr调用。现在的PostgreSQL中只剩md了。

file包含两个文件,一个buffile,一个fd。
fd可以说是最底层的了,函数都是直接调用open,close,read,write,lseek的。我开始还以为fd在smgr上层那。fd由于能打开的文件有限,用的是LRU的替换算法,实现得很简练。
buffile的函数基本都是调用fd的,主要用做临时文件什么的。

这几天看了buffer,file,smgr 他们之间的调用关系基本如图(可能不完善,毕竟storage下的其他目录还没看)

buffer
|
smgr
/
md
/buffile
/ /
fd
|
OS

上层调用下层相应功能函数。buffile好象比较特殊,象Hashjoin等都是直接调用它的,没经过smgr和md的调用,这个等以后看到Hashjoin再说。

BTW: 本来画了张函数调用图,但不知道怎么贴上来。:-(

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读