Pgkernel
首页
如需要修改本页,请注册帐号,注册地址
Postgres内核交流QQ群:191516184
近期活动:
元旦后第一个周日即2012年1月8日晚8点-9点,网上第一次内核分析会议,讨论内核分析如何展开。
通讯工具:本群QQ语聊+文字,同时请大家备用Skype。
注意事项:请大家提前准备发言要点,同时可提前把要点发到QQ群。
报名方式:请大家愿意参加的加入本群。
活动已结束,点击这里查看会议纪要。
以往的活动请访问历史活动页面。
PG源码解析项目概要
PostgreSQL中国内核分析虚拟团队,启动于2011年12月12日,为协调大家共同进步,制定本共识:
- 我们相信,众人若产生合力,将更有利于内核的分析。基本的合力有并行力和串行力。并行力是对任务的分而治之,串行力是对任务的接力。我们深知,受客观条件限制,许多人只能在一段时间内分析内核。
- 内核分析的结果之一是产生众多高质量的分析文档。这种文档不仅为我们以及我们的后继者所理解,还应让许多人所理解。我们深知,这意味著文档的撰写会迭代许多版本。
- 我们乐于深究细节,若暂时无法分析明白,我们愿意标记并公开出来,便于其他人员继续我们的工作。
附A:
- http://wiki.postgresql.org/wiki/Pgkernel是分析结果文档的总门户
- QQ群172863480是我们的联络方式
- http://bbs.pgsqldb.com/index.php?t=thread&frm_id=32 是内核所在的bbs
- 可参考的任务划分方式有:历史版本研究,最近的几个版本,最新的版本,多节点,其他辅助工具,索引、并发控制、流复制等
- 具有项目支持的内核分析是推荐的
- 为高校教材配套的内核分析是推荐的
- 工业界使用或研发PostgreSQL而产生的内核疑惑进而去分析是推荐的
内核相关项目
PGCloud
目标:pgcloud BETA,降低运维人员的工作负担, 提供高可用, 节约成本, 提供精细化的报告和监控平台。
项目地址:链接
文档:pgclound页面
启动时间:2011年
联系人:Digoal.Zhou,QQ:276732431
PostgreSQL技术演进史(项目代号PGStation)
目标:从Ingres开始一直到最新版本的PostgreSQL9.X,结合数据库发展史上重要的技术论文,用源代码说话,正说PostgreSQL的前世今生,并一探数据库各时代的脉搏。
文档:PostgreSQL技术演进史页面
联系人:孙鹏,QQ:66697561
SQL查询优化器(开放项目,欢迎参与)
目标:探索PostgreSQL中查询优化器的代码,探索查询优化技术,包含联机查询优化和物理查询优化以及多种两表连接算法、多表连接算法等。
文档:
SQL查询优化技术专业博客
PostgreSQL查询优化器源码分析--整体流程
PostgreSQL查询代价估算--目录
联系人:那海蓝蓝(欢迎加入,您也可以联系 QQ:32109872,或 查询优化技术专业QQ群:151467950)
SQL语句对应的ParserTree大全(开放项目,欢迎参与)
目标:根据SQL标准(例如参考SQL92),分析并绘制SQL语句对应的解析树大全,目的在于研究SQL标准与PostgreSQL解析器代码之间的对应关系,进而一探SQL标准的未来走向(例如数据挖掘语句的影响等)。
文档:postgresql中parse tree内存结构
联系人:暂无(欢迎加入,您也可以联系QQ群191516184)
复杂Group-By语句的CPU和I/O性能研究(开放项目,欢迎参与)
目标:探索PostgreSQL中各种复杂Group-By语句从Parser到Optimizer再到Portal之间代码,探索影响Group-By执行的效率问题,包含是否创建索引,以及数据量和数据分布的影响等。
文档:group by 语句从parsetree到portal全过程内存结构
联系人:暂无(欢迎加入,您也可以联系QQ群191516184)
MVCC深度探索(开放项目,欢迎参与)
目标:探索MVCC技术在PostgreSQL里的实现。
文档:MVCC深度探索页面
联系人:暂无(欢迎加入,您也可以联系QQ群191516184)
WAL深度探索(开放项目,欢迎参与)
目标:探索WAL技术在PostgreSQL里的实现。
文档:WAL深度探索
联系人:暂无(欢迎加入,您也可以联系QQ群191516184)
流复制(开放项目,欢迎参与)
目标:探索流复制技术在PostgreSQL里的实现。
文档:流复制
联系人:暂无(欢迎加入,您也可以联系QQ群191516184)
PGPool(开放项目,欢迎参与)
目标:探索PGPool技术。
文档:pgpool页面
联系人:暂无(欢迎加入,您也可以联系QQ群191516184)
GiST索引扩展与性能分析及其与各模块的关系研究(开放项目,欢迎参与)
目标:探索GiST的索引机制,以及在特定应用场景中的扩展,尤其是扩展了存储方案后的索引,包括时空数据的索引等,索引的性能评估机制等。
文档:
Postgres中有关GiST索引的某些调用流程
曾经的经典libgist v.2.0/amdb v.1.0
联系人:高需,QQ:24572813
基础项目
调试环境搭建
目标:协助新的愿意研究内核的人员搭建调试环境
项目地址:PG内核调试环境搭建
联系人:徐军 email: jimxu123@gmail.com
相关资料
原理
参考资料
概要
- PostgreSQL team, Overview of PostgreSQL Internals
- Tom Lane, A Tour of PostgreSQL Internals
- Bruce Momjian, PostgreSQL Internals Through Pictures
- Neil Conway,Introduction to Hacking PostgreSQL
- PostgreSQL中的进程
- 石井達夫,PostgreSQL及其代码的结构
- 那海蓝蓝,PostgreSQL日志系统的实现
- 那海蓝蓝,PostgreSQL存储系统
- 那海蓝蓝,PostgreSQL的多进程与MySQL的多线程
- 那海蓝蓝,PostgreSQL的buffer管理
内核解析各模块
启动和初始化
SQL引擎
- Bruce Momjian, Explaining the Postgres Query Optimizer
- Neil Conway,Inside the PostgreSQL Query Optimizer
- Conway, Query Evaluation Techniques in PostgreSQL
- 孙鹏, group by 语句从parsetree到portal全过程内存结构
- 孙鹏, postgresql中plantree内存结构
- 孙鹏, postgresql中query tree内存结构
- 孙鹏, Postgresql Executor 阶段内存结构
- 那海蓝蓝, SQL查询优化技术专业博客
- 那海蓝蓝, PostgreSQL查询优化器源码分析--整体流程
- 那海蓝蓝, PostgreSQL查询代价估算--目录
存储
内存
- Bruce Momjian,Inside PostgreSQL Shared Memory
- Nagayasu, (Japanese)PostgreSQL Internals - Buffer Management
- 孙鹏,Postmaster的Shared Memory中的shmem index table 内存结构
- 孙鹏,Postmaster的Shared Memory中的shared buffer pool内存结构
事务、并发、恢复
- Bruce momjian, Unlocking the Postgres Lock Manager
- Bruce Momjian,MVCC Unmasked
- Tom Lane,Hacking the Query Planner
- Postgres的WAL机制
- Postgres中的ResourceOwner对象简介
- Postgresql与innoDB的多版本并发控制技术比较
- 那海蓝蓝,PostgreSQL日志系统(WAL)的实现深度分析