▶ PostgreSQL源码剖析教程
文章平均质量分 93
实际项目结合PostgreSQL源码,由浅入深、图文并茂地剖析PostgreSQL的底层实现原理。对于每个知识点,都尽量做到知其然更是知其所以然,对于每篇文章,都极力去做到详细且深入。全网PG内核分析最为详细、最为底层、最为全面、最为深入的专栏。
内核之道
某大厂资深全栈工程师,专注于『PostgreSQL内核、NVR、AI超脑、智能应用服务器』开发
展开
-
【0250】深入分析Write-Ahead Log Fault Tolerance(WAL容错)
本文将详细讲解影响。原创 2024-01-23 12:50:54 · 281 阅读 · 0 评论 -
【0236】聊一聊PG内核中的命令标签(Command Tags、CommandTag、tag_behavior)
1. 什么是命令标签(Command Tags)当客户端向PG服务下发一个请求时,postgres进程在读取到用户的请求缓冲区之后,需要对从中解析出用户的具体请求,比如:CREATE TABLE、CREATE DATABASE、DROP TABLE、SELECT等具体操作,这里除了会用到后面即将讲的词法分析解析器flex之外,还会用到一个很重要的模块(tcop, 完整路径如下:src/include/tcop),该路径下的头文件定义了PG数据库内核所能够识别到的所有SQL关键词。1.1 命令标签列表相原创 2023-11-21 13:35:16 · 767 阅读 · 0 评论 -
【0235】修改私有内存(private memory)中的MyBEEntry时,st_changecount值前后变化
上一篇: 【0234】PgBackendStatus 记录当前postgres进程的活动状态客户端(eg:psql)在连接上postmaster之后,postmaster守护进程会fork()一个后端进场(backend process),之后此客户端的所有操作、交互均有此对应的BackendId进程接收、响应。客户端的每一个SQL操作语句,在pg_stat_activity()函数中都可以看到其完整的消息,比如:语句操作时间、当前操作的SQL语句、当前backend process的运行状态等等。此函数中原创 2023-11-17 11:43:06 · 284 阅读 · 0 评论 -
【0218】当SIGQUIT kill掉stats collector后,stats collector如何保存最终统计数据
stats collector进程的主体函数是PgstatCollectorMain(),该函数内部完成了stats collector进程的信号注册、现有统计文件读取、消息处理等任务。这两种信号均可以kill掉stats collector进程,但是这两种信号背后,stats collector进程的处理方式是有区别的。原创 2023-08-29 14:48:50 · 1153 阅读 · 0 评论