PostgreSQL启动过程中的那些事十九:walwriter进程二

PostgreSQL启动过程中的那些事十九:walwriter进程二,第1张

概述3         这节主要讨论walwriter进程到了WalWriterMain,设置合适的信号处理句柄,创建一个资源属主以保持对本进程资源的跟踪,创建一个本进程的所有工作都在其内做的内存上下文"Wal Writer",创建这个内存上下文是为了本进程在错误恢复期间能重置context并且因此避免可能的内存泄漏。设置错误跳跃点。接着不堵塞信号(当postmaster进程fork本进程时用PG_S

3

这节主要讨论walwriter进程到了WalWriterMain,设置合适的信号处理句柄,创建一个资源属主以保持对本进程资源的跟踪,创建一个本进程的所有工作都在其内做的内存上下文"Wal Writer",创建这个内存上下文是为了本进程在错误恢复期间能重置context并且因此避免可能的内存泄漏。设置错误跳跃点。接着不堵塞信号(当postmaster进程fork本进程时用PG_SETMASK(&BlockSig)堵塞了他们)。然后进入无限循环,检查并处理任何请求或者最近收到的信号。然后调用XLogBackgroundFlush把相应XLOG写入事务日志文件。然后睡眠指定时间后再接着循环。

WalWriterMain方法的调用序列图

下面时WalWriterMain流程图

WalWriterMain流程图

WalWriterMain中主要是调用XLogBackgroundFlush把相应XLOG写入事务日志文件。在XLogBackgroundFlush里,判断如果需要写(1不在恢复过程中,2 XLOG写请求位置WriteRqstPtr在上次写XLOG结果的刷出位置LogwrtResultg.Flush的后面)XLOG日志,调用XLogWrite方法,写和/或文件同步xlog日志 至少到WriteRqst指明的位置,这是通过调用write和issue_xlog_fsync完成的,最后到了 *** 作系统的write和sync接口。


------------ 转载请著明出处,来自博客: blog.csdn.net/beiigang beigang.iteye.com

总结

以上是内存溢出为你收集整理的PostgreSQL启动过程中的那些事十九:walwriter进程二全部内容,希望文章能够帮你解决PostgreSQL启动过程中的那些事十九:walwriter进程二所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1178684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存