PostgreSQL Files 和 Forks 概念
在 PostgreSQL 数据库中,relation 关联的所有信息存储在几个不同的 forks 里面,每个 fork 都包含一个特定类型的数据。首先一个 fork 表示一个文件,它的文件名由一个数字 ID(oid)表示,可以通过对应于 f...继续阅读
在 PostgreSQL 数据库中,relation 关联的所有信息存储在几个不同的 forks 里面,每个 fork 都包含一个特定类型的数据。首先一个 fork 表示一个文件,它的文件名由一个数字 ID(oid)表示,可以通过对应于 f...继续阅读
源码文件:src/backend/access/transam/subtrans.c源码版本:PG 13.31. 子事务的使用PG 提供了一组 savepoint 相关的命令用于子事务操作,子事务相关例子如下:定义一个保存点:savepoi...继续阅读
源码版本:PG 13.3源码文件:dsm.c dsm_impl.cPostgreSQL 是基于进程模型的数据库内核实现,进程之间的通信、数据传输通常需要借助共享内存实现。在程序运行过程中,比如并发任务需要创建多个工作进程,工作进程与 bac...继续阅读
源码版本:PG 13.3源码文件:slot.c slotfuncs.c1. 什么是 PG 复制槽?PG 复制槽用于记录主备流复制的状态,主要目的是防止 wal 日志被过早的删除,导致备库流复制中断。复制槽是有状态的,能够持久化到磁盘上,允许...继续阅读
源码版本:PG 13.3源码文件:src/backend/utils/time/snapmgr.c1. 事务快照数据结构typedef struct SnapshotData{SnapshotType snapshot_type; /* t...继续阅读
源码版本:PG 13.3PG 支持两阶段提交事务(2PC),本文基于 PG 13.3 源码,简单分析 2PC 事务处理相关的逻辑。1. 两阶段事务提交的处理过程2PC 各阶段的命令调用主要包含如下三个:prepare trancation ...继续阅读
源码版本:pg 14.3源文件:src/backend/replication/syncrep.c原文地址:https://www.mytecdb.com/blogDetail.php?id=2391、PG同步复制简介同步复制是 pg 9....继续阅读
源码版本:PG13Free Space Map 是 PostgreSQL 空闲空间高效管理的一种方式。堆表由于频繁的 update, delete,vacuum,会导致页面出现大小不一的空闲空间,FSM 机制能够有效的管理这些空闲空间,当...继续阅读
PostgreSQL 源码提供了编译选项用来测试代码覆盖率,打开 --enable-coverage 选项,编译安装,然后执行回归测试或者其他的测试,最后生成代码覆盖率报告。下面以 CentOS 7.9 环境为例,介绍整个操作流程。0、依赖...继续阅读
源码版本:pg 11.9源码文件:src/backend/storage/ipc/latch.cLatch 是 pg 中使用较多的一种数据结构,用于等待某个事件的发生或者超时,常见的 Latch 相关函数如下:InitLatch(),初始化...继续阅读