2021SC@SDUSC
目录
源码安装
在队长的帮助下,我成功在Linux虚拟机上完成了postgreSQL的源码安装,包括下载,解压,编译,安装,初始化,启动几项流程。
源码分析
经过小组讨论和分析,大家一致认为postgreSQL的核心部分在于SQL功能的实现。
主要源码之后经过讨论分析我们小组一致认为postgreSQL源码的核心部分在后端处理即backend文件夹中
access 各种存储访问方法(在各个子目录下) common(共同函数)、gin (Generalized Inverted Index通用逆向索引)
bootstrap 数据库的初始化处理(initdb的时候)
catalog 系统目录
commands SELECT/INSERT/UPDATE/DELETE以为的SQL文的处理
executor 执行器(访问的执行)
foreign FDW(Foreign Data Wrapper)处理
lib 共同函数
libpq 前端/后端通信处理
main postgres的主函数
nodes 构文树节点相关的处理函数
optimizer 优化器
parser SQL构文解析器
port 平台相关的代码
postmaster postmaster的主函数 (常驻postgres)
replication streaming replication
regex 正则处理
rewrite 规则及视图相关的重写处理
snowball 全文检索相关(语干处理)
storage 共享内存、磁盘上的存储、缓存等全部一次/二次记录管理(以下的目录)buffer/(缓存管理)、 file/(文件)、
freespace (Fee Space Map管理) ipc/(进程间通信)、large_object /(大对象的访问函数)、
lmgr(锁管理)、page/(页面访问相关函数)、 smgr/(存储管理器)
tcop postgres (数据库引擎的进程)的主要部分
tsearch 全文检索
utils 各种模块(以下目录) adt/(嵌入的数据类型)、cache/(缓存管理)、 error/(错误处理)、fmgr/(函数管理)
分工情况
查询的编译与执行
索引的建立与使用
事务和并发控制
存储管理
我负责的部分
我负责事务和并发处理这一部分,可能会读到的文件夹access,util等。
分析方式
通过gdb调试了解函数调用过程,然后再深入阅读源码。