首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Postgres 源码学习 2—Postgres 的 VFD 机制

操作系统中的文件 数据库的本质其实就是用来存储数据的,所以免不了和文件系统、存储进行交互,万丈高楼平地起,存储一般是一个数据库的最底层,Postgres 在存储的文件管理方面也有很多的设计与抽象。...在操作系统层面,提供了一些文件操作相关的系统调用(fopen、fclose、fsync 等),我们作为上层使用者,可以直接通过 C 语言库进行调用即可(Postgres 使用 C 语言编写)。...Postgres 的 VFD 作用 Postgres 数据库在运行的过程当中,可能会打开非常多的文件,比如数据表对应的文件,元数据表文件,以及一些在 SQL 运行时打开的临时文件,例如排序、哈希表所需的文件...VFD 的基本工作方式 Postgres 主要通过一个进程私有的数组来维护 VFD,名为 VfdCache。...通过这种方式,Postgres 可以打开远超过系统和进程限制的文件数量,是一个非常精妙的设计。

8810
您找到你想要的搜索结果了吗?
是的
没有找到

Postgres 源码学习 3—Postgres 存储管理器

前面一节说到,在 Postgres 的 VFD 机制之上,我们可以避开打开文件数量的系统限制,通过 VFD 可以进行打开、读写、关闭、删除文件等操作,简单来说就是 VFD 为我们提供了一个抽象,屏蔽了操作系统文件描述符的接口...文件类型和文件块 要了解 Postgres 的存储管理,需要先对 Postgres 的表文件的组织方式、类型有一个简单的了解。...Postgres 中的表文件可能会非常大,在物理存储上会将表文件拆分为多个,每一个表文件通过 segno 来区分。...在 Postgres 的数据目录中,表文件的存储格式为 base//。...但是目前在操作系统层面,已经提供了文件系统的抽象,所以存储管理器其实已经没有存在的必要了,但是 Postgres 依然选择将其保留,主要是认为这层抽象并没有什么其他的影响。

8710

POSTGRESQL Postgres-XL 了解一下

上次分析的POSTGRES -XC 的结构, 实际上POSTGRES-X 系列一直在发展, POSTGRES除了 XC 还有XL 的高可用的结构....image.png Postgres-XL 是一款Postgres-XC升级的产品, 如果说PGXC是在PG添加了集群的功能主打OLTP的功能为卖点, PGXL 是一款基于PGXC添加了OLAP功能的支持...目前有些国产数据库是基于POSTGRES-XL 来进行二次研发并推广上市的,实际上POSTGRES-XC 是日本NTT电信在2010年的网格化数据库的计划,在2012年一个叫stormDB的公司在POSTGRES-XC...基础上增加了POSTGRES-XC的性能,包含MPP架构, 在2013年stormDB被TransLattice 获得并在2014年将这个项目开源,变为POSTGRES-XL POSTGREX-XC..., POSTGRES-XC XL , 以及 TIDB 的 NEW SQL 流派。

2.6K40
领券