存储管理器的体系结构:
存储管理器的主要任务:
- 缓冲池管理:缓冲池在PG中起缓存作用,数据库中的事务常常需要频繁的存取数据,为了减少对磁盘的读写,在事务执行时,数据首先将会放入缓冲池中,PG设立了进程间共享的缓冲池(共享缓冲池)以及进程间似有的缓冲池(本地缓冲池)。
- Cache机制:将进程最近使用的一些系统数据缓存在其私有内存中,其级别高于缓冲池。
- 悉尼文件描述符管理:PG通过虚拟文件描述符(Virtual File Descriptor,VFD)来对物理文件进行管理,避免因为操作系统对进程打开文件数的限制出现错误。
- 空闲空间管理:用于快速定位到表文件中的空闲空间以便于插入新的数据,从而提高空间利用率。
- 进程间通信机制(IPC):PG是一个多进程的系统,IPC用来在多个后台进程之间进行通信和消息的传递,比如使用消息队列来同步进程产生的无效消息,同事IPC还提供了对共享内存的管理。
- 大数据存储管理:提供大对象和TOAST机制。大对象机制是一种由用户控制的大数据存储方法,它允许用户调用函数,通过SQL语句直接向表中插入一个大尺寸文件(图片、视频、文档等)。而TOAST机制则是在用户插入的变长数据超过一定限度时自动触发,用户无法对TOAST加以控制。