相关: 《Postgresql源码(66)insert on conflict语法介绍与内核执行流程解析》) 《Postgresql源码(70)逻辑复制DecodeXLOG主要流程和数据结构》
本篇只简单介绍逻辑复制解析过程,这里面的比较有意思的历史快照还没有看,后面在补一篇。
0 总结速查
- 优先理解数据结构,整体流程就是一个解析–>挂链–>处理的流程。
- 调pg_logical_slot_get_changes走decode这部分代码逻辑简单且相对独立,可以参考的地方:
- 经典查找结构hashtable entry中挂dlist的数据结构。
- 从XLOG反解并拼出tuple的几个函数调用。
- 完整独立的Xlog解析接口的调用、hash表、dlist的操作;不同日志类型的处理方式。
1 解析流程
逻辑复制数据结构稍复杂,流程逻辑很简单。(主要是眼花了把reorder看成了record,困惑了很久


