【0224】源码分析RelFileNode对smgr访问磁盘表文件的重要性(2)

1. RelFileNode的角色

RelFileNode 是一个结构体数据类型,声明于relfilenode.h(src\include\storage )头文件中,该数据类型十分重要,因为它 “提供所有我们需要知道的物理访问关系表的信息。” smgr要访问磁盘上面的数据表文件,则需要此RelFileNode提供必要信息。 可以说,没有RelFileNode提供的信息,PG内核中smgr就无法去访问、读写磁盘上面的对应表文件。

RelFileNode 必须提供所有我们需要知道的物理访问关系表的信息,但后端ID(backend ID)除外,它可以单独提供。但是请注意,“物理”关系表是由文件系统上的多个文件组成的,因为每个fork存储为一个单独的文件,并且每个fork可以划分为多个段。请参见md.c。

1.1 RelFileNode声明

RelFileNode 数据类型共有三个成员变量,分别是:spcNodedbNoderelNode

typedef struct RelFileNode
{
   
	Oid			spcNode

你可能感兴趣的:(#,▲,初阶篇,smgr,RelFileNode,relfilenode)