第一章postgresql项目整体架构

1、文件目录

doc                                    (官网)文档目录

src                                     源代码目录

config                                存放了一些系统的配置文件

contrib                               contribution,存放了一些没有集成到PG核心源码中的代码

aclocal.m4                         config 用的文件的一部分
configure                            configure 文件
configure.in                        configure 文件的雏形

COPYRIGHT                     版权信息
GUNMakefile                     第一级目录的 Makefile
GUNMakefile.in                 Makefile 的雏形
HISTORY                          修改历史
INSTALL                            安装方法简要说明
Makefile                             Makefile模版
README                           简单的说明文档

2、src目录结构

●src源代码目录
DEVELOPERS                           面向开发人员的注视
Makefile                                      Makefile 
Makefile.global                            make 的设定值(从configure生成的)
Makefile.global.in                        Configure使用的Makefile.global的雏形
Makefile.port                               平台相关的make的设定值,实际是一个makefile/Makefile   的连接. (从configure生成的)
Makefile.shlib                              共享库用的Makefile
backend/                                     后端的源码目录

common/                                     通用的、跨平台的代码模块
bin/                                              psql 等 UNIX命令的代码
include/                                       头文件
interfaces/                                   前端相关的库的代码
makefiles/                                   平台相关的make 的设置值
nls-global.mk                              信息目录用的Makefile文件的规则
pl/                                                存储过程语言的代码
port/                                            平台移植相关的代码
template/                                    平台相关的设置值
test/                                            各种测试脚本
timezone/                                   时区相关代码
tools/                                          各自开发工具和文档
tutorial/                                                             

3、backend源代码目录

Makefile                         makefile
gist                                (Generalized  Search Tree通用索引)、 hash (哈希索引)

                                      heap(heap的访问方法)
index                              (通用索引函数)、 nbtree (Btree函数)、transam (事务处理)
access/                          提供各种存取方法,支持堆、索引等对数据的存取

                                       各种存储访问方法(在各个子目录下) common(共同函数)、

                                       gin  (Generalized Inverted Index通用逆向索引)、

                                       gist (Generalized  Search Tree通用索引)、 hash (哈希索引)

                                       heap (heap的访问方法)、 index (通用索引函数)

                                       nbtree (Btree函数)、transam (事务处理)
bootstrap/                     用于支持Bootstrap运行模式,该模式主要用来创建初始的模板数据库
catalog/                        系统表操作,包含用于操作系统表的专用函数
commands/                  SELECT/INSERT/UPDATE/DELETE以外的SQL文的处理
executor/                      执行器(访问的执行),执行来自Optimizer的查询计划。
foreign/                         FDW(Foreign Data Wrapper)处理
lib/                                共同函数
libpq/                            前端/后端通信处理,处理与客户端间的通信。
main/                            主程序模块,它负责将控制权转到Postmaster进程或Postgres进程
nodes/                          构文树节点相关的处理函数
optimizer/                     优化器,根据查询树创建最优的查询路径和查询计划。
parser/                          SQL构文解析器。SQL查询转化为内部查询树。
port/                              平台相关的代码
postmaster/                   postmaster的主函数 (常驻postgres)。监听用户请求的守护进程,                                           并控制Postgres进程的启动和终止
replication/                    streaming replication
regex/                           正则处理
rewrite/                          规则及视图相关的重写处理
snowball/                       全文检索相关(语干处理)
storage/                         共享内存、磁盘上的存储、缓存等全部一次/二次记录管理

                                       (以目录)buffer/(缓存管理)、 file/(文件)
freespace/                     (Free Space Map管理) ipc/(进程间通信)、large_object /(大对象                                               的访问函数)、lmgr/(锁管理)、page/(页面访问相关函数)、                                                       smgr/(存储管理器)
tcop/                              postgres (数据库引擎的进程)的主要部分。Postgres服务进程的

                                      主要处理部分,它调用Parser、Optimizer、Executor、和                                                        Commands中的函数来执行客户端提交的查询。
tsearch/                         全文检索
utils/                              各种模块(以下目录)

                                     adt/(嵌入的数据类型)

                                     cache/(缓存管理)

                                     error/(错误处理)

                                     fmgr/(函数管理)

                                     hash/(hash函数)

                                     init/(数据库初始化

                                     postgres的初期处理)

                                     mb/(多字节文字处理)

                                     misc/(其他)

                                     mmgr/(内存的管理函数)

                                     resowner/(查询处理中的数据(buffer pin及表锁)的管理)

                                     sort/(排序处理)

                                     time/(事务的 MVCC 管理)

4、模块调用关系

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值