暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
PostgreSQL VFD机制
437
5页
1次
2019-11-03
5墨值下载
1
、结构体

机制中由结构体

来维护。其中各个成员变量的意义如下表所示:

实际对应的物理文件文件描述符
 
:表示文件在关闭时需删除

:标记临时文件

这几个都针对临时文件
  !"
# 

链表,实际上是数组的下标。
!$!% 
的最近最少使用链表,为双向。实际上也是数组的下标
!$!% !$!%
为正向,每次插入都插入头部
&!'(
文件大小
&!)
文件名
&!!*
打开文件时的标签,比如
$
&!
打开文件时的属性,比如读写权限等
2
、初始化
启动时初始化,使用
!!
,只在本进程中有效,即每个进程都维护各自的
+
而并
非共享内存。初始化时只申请第一个数组,并将其
置为

*',-.',-''!/
+0123!!1'(1334
11+2351+67837'(1334
+,-04
'(+094
2
open
时的流程
9
"
!!
+
!
函数流程见
!!
调用。
:
$!'!
"
$;
表最后一个

!
掉。
<
"

$;
$;

数分析。
=
)然后对

成员变量进行赋值。
+)"'!,-
&!0!!134
05+6&!84
$!'!134
,-0.'"'!1&!)&!!*&!34
1&!34
,-&!)0"%4
>2?*@AB,"'*&!2>
,-&!!*0&!!*5C1$D$;)D34
,-&!0&!4
,-&!'(074
,-07#74
,-0);4
AllocateVfd
9
)每次调用
.'"'!"
文件前都会调
!!
+
中获取一个空
闲的

:
)首先会判断

链表中是否为空。初始时刻
'(+
9
,则会将
+
初始
化成大小
<:
的数组,并将其通过
#
串联起来形成

链表,注意该

链表为循环。
<
+678
不使用。最开
<:
个的时候,即第一次扩充后

链表如下图所示,跳过
+698
9
会返回。也就是说每次取

都是
+678E#
=
)后续再次扩充时,都是翻倍进行扩充
!!,-
'1+678E#0073F
'( +'(0'(+2:4
'1+'(G<:3
+'(0<:4
+0123!!1+'(132+'(34
+0+4
1'0'(+4'G+'(4'HH3F
11+2351+6'837'(1334
+6'8E#0'H94
+6'8E04
I
+6+'(,98E#074
+678E#0'(+4
'(+0+'(4
I
&!0+678E#4
+678E#0+6&!8E#4
&!4
of 5
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜