PostgreSQL的数据存储(四)---虚拟文件管理
来源:互联网 发布:mac os x 10.10 cdr 编辑:程序博客网 时间:2024/05/17 07:01
3 虚拟文件管理
PG的本项功能称为:a cache of 'virtual' file descriptors (VFDs)
操作系统,对于资源的分配,存在限制,比如,一个进程,可以拥有多少子线程、可以同时打开多少个文件、可以使用的堆栈大小是多少等等。
而不同的操作系统,其限制是不一样的。
作为数据库管理系统,PG能够做到跨平台,对文件的管理,有自己的一套规则以屏蔽操作系统在文件打开数上不同限制。
PG使用LRU算法,对文件句柄进行管理,调用的函数有:LruDelete(File file)、LruInsert(File file)。
一些函数调用关系如下:
Insert
LruInsert //LRU相关函数
FileAccess //文件操作的相关封装
FilePrefetch
FileRead //文件操作的相关封装
lo_import_internal
BufFileLoadBuffer
mdread //上一层操作的相关封装
FileWrite //文件操作的相关封装
FileSync //文件操作的相关封装
FileSeek //文件操作的相关封装
FileTruncate //文件操作的相关封装
PathNameOpenFile
另外,LRU相关结构如下:
typedef struct vfd
{
int fd; /* current FD, or VFD_CLOSED if none */
unsigned short fdstate; /* bitflags for VFD's state */
ResourceOwner resowner; /* owner, for automatic cleanup */
File nextFree; /* link to next free VFD, if in freelist */
File lruMoreRecently; /* doubly linked recency-of-use list */
File lruLessRecently;
off_t seekPos; /* current logical file position */
char *fileName; /* name of file, or NULL for unused VFD */
/* NB: fileName is malloc'd, and must be free'd when closing the VFD */
int fileFlags; /* open(2) flags for (re)opening the file */
int fileMode; /* mode to pass to open(2) */
} Vfd;
- PostgreSQL的数据存储(四)---虚拟文件管理
- PostgreSQL的数据存储
- PostgreSQL的数据存储(五)---数据存储
- PostgreSQL的数据存储(六)---数据存储
- PostgreSQL的数据存储(七)---数据存储
- PostgreSQL的数据存储(八)---数据存储
- PostgreSQL的数据存储(九)---数据存储
- PostgreSQL的数据存储(十)---数据存储
- PostgreSQL的数据存储(十一)---数据存储
- PostgreSQL的数据存储(十二)---数据存储
- PostgreSQL的数据存储(十三)---数据存储
- PostgreSQL的数据存储(十四)---数据存储
- PostgreSQL的数据存储(十五)---数据存储
- PostgreSQL的数据存储(十六)---数据存储
- PostgreSQL的数据存储---目录
- 数据存储之(四):文件存储
- PostgreSQL的数据存储(十七)---数据存储的知识扩展
- PostgreSQL的数据存储(十八)---数据存储的优化
- MySQL
- PostgreSQL的数据存储(二)---数据缓存去和数据存储层的接口
- debug kernel with qemu
- PostgreSQL的数据存储(三)---数据缓存去和数据存储层的接口
- OpenCV 配置成功 庆祝一下
- PostgreSQL的数据存储(四)---虚拟文件管理
- Android开发之发送短信程序
- 如何国际化旧项目
- 增量数据挖掘论文推荐
- Android 中的 Service 全面总结
- PostgreSQL的数据存储(五)---数据存储
- PostgreSQL的数据存储(六)---数据存储
- 大家好啊
- PostgreSQL的数据存储(七)---数据存储