
源码解析
|ChuckChen|
本博客为记录作者平时测试与学习笔记,并分享给大家。专注原创。希望可以带给大家一些技术上的分享。
本博客仅作者本人所有, 与 AWS 官方没有任何关联。所有言论也仅代表作者本人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Postgresql - 源码 - 数据库启动
数据库启动,一个很简单的举动,只需要执行一条命令,OS上执行的service postgresql start 或者 systemctl status postgresql.service或是直接执行数据库启动命令/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 -l /usr/local/pgsql/logs/pg...原创 2018-09-25 18:31:26 · 748 阅读 · 0 评论 -
Postgresql - 源码 - stats collector process
代码位置:src/backend/postmaster/pgstat.c 所有的统计信息收集器的东西放在一个大的丑陋的文件。TODO:- Separate collector, postmaster and backend stuff into different files. 单独收集,postmaster和backend内容到不同的文件。- Add some autom...原创 2018-10-18 17:14:52 · 820 阅读 · 0 评论 -
Postgresql - 源码 - WAL Sender process
介绍:WAL sender process 是9.0的新功能。需要从主服务器发送XLOG到单个recipient(备机)。注意可以同时存在多个walsender进程。当备用服务器的walreceiver连接到主服务器并请求XLOG streaming replication的时候,由postmaster启动walsender process。walsender类似于常规后端,连接和wals...原创 2018-10-08 22:40:44 · 2313 阅读 · 0 评论 -
Postgresql - 源码 - 数据库启动 -StartChildProcess
启动其他子进程。such as the bgwriter, walwriter, walreceiver, bootstrapper and the shared memory checker code. 包括 src/backend/postmaster/postmaster.c 中的#define StartupDataBase() StartChildProcess(...原创 2018-09-27 17:21:47 · 223 阅读 · 0 评论 -
Postgresql - 源码 - WalWriter process
启动时执行两个函数InitXLOGAccess(); 代码位置 src/backend/access/transam/xlog.cWalWriterMain(); 代码位置 src/backend/postmaster/walwriter.c InitXLOGAccess()的解释是:在创建WAR记录之前,必须在后端过程中调用。我们需要初始化ThisTimeLineID 和 Red...原创 2018-10-05 09:58:17 · 695 阅读 · 0 评论 -
Postgresql - 源码 - walreceiver process
启动进程时执行一个函数,这个函数是walreceiver 进程的主入口。WalReceiverMain() 代码位置:src/backend/replication/walreceiver.c 下面我们看一下主入口函数 /* Main entry point for walreceiver process */voidWalReceiverMain(void...原创 2018-10-05 01:09:05 · 1166 阅读 · 0 评论 -
Postgresql - 源码 - autovacuum deamon
什么是vacuum。在这一文章中就不多阐述了。我们来看一下autovacuum的代码。 代码中的注释信息 ( 代码位置 src/backend/postmaster/autovacuum.c ):******************************************************************autovacuum系统是由两种不同的过程构成的:aut...原创 2018-10-04 16:06:42 · 760 阅读 · 0 评论 -
Postgresql - 源码 - checkpointer process
代码位置:src/backend/postmaster/checkpointer.c 代码中的注释:检查指针是Postgres 9.2 的新功能。它处理所有checkpoint。checkpoint在从上一个checkpoint经过一定时间之后自动调度,并且还可以用信号通知它执行所请求的checkpoint。(每隔这么多WAL段指定一个checkpoint的GUC参数通过在它们填充...原创 2018-10-11 15:12:05 · 1230 阅读 · 0 评论 -
Postgresql - 源码 - backend启动
如何调到这个postmaster子进程呢,后台程序postmaster backend子进程存在在backend/main/main.c 1. 进入到src/backend/main/main.c中,查看后台主函数main/** ......* This does some essential startup tasks for any incarnation of ...原创 2018-09-26 16:10:36 · 806 阅读 · 0 评论 -
Postgresql - 源码 - logger process
代码位置:src/backend/postmaster/syslogger.c system logger是从PG 8开始的。通过重定向到管道来捕获来自Postmaster, backends, 和其他的子进程的所有stderr,并写入日志文件。可以再postgresql.conf 中配置日志文件的 size 和 age限制。如果达到了限制,关闭当前日志文件,并创建新的日志文件。日志文...原创 2018-10-17 15:48:15 · 669 阅读 · 0 评论