第一章 buffer cache管理 - 2 原理机制

本文深入探讨了PostgreSQL的缓冲区管理器机制,包括缓冲区标签、缓冲区hash表、缓冲区buffer描述符、缓冲区buffer描述符数组、缓冲池以及空闲链表的详细结构和工作原理。此外,还介绍了缓冲池的初始化、共享缓冲区的申请策略,如从Ring缓冲区找受害者。整个机制旨在高效地管理内存页,提高数据库性能。
摘要由CSDN通过智能技术生成

本章节主要介绍缓冲区管理器机制,从原理上介绍共享缓冲区如何管理内存页。

1、缓冲区管理器的结构

PostgreSQL缓冲区管理器由缓冲区hash表、缓冲区buffer描述符和缓冲池组成。下面依次介绍这几个结构。

1.1 缓冲区标签

typedef struct buftag
{
	RelFileNode rnode;			/* 表文件物理ID*/
	ForkNumber  forkNum;        /* 表文件的分支,下面有详细介绍*/
	BlockNumber blockNum;		/* 表文件的页号,从0开始 */
} BufferTag;

typedef struct RelFileNode
{
	Oid			spcNode;		/* 表空间ID*/
	Oid			dbNode;		/* 数据库ID*/
	Oid			relNode;		/* 表文件的ID*/
} RelFileNode;

typedef enum ForkNumber
{
	InvalidForkNumber 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzs87

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值