`

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

阅读更多

 

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

  • 大小: 54.2 KB
  • 大小: 35 KB
0
1
分享到:
评论

相关推荐

    PostgreSQL内核分析

    1. **Postmaster**:这是PostgreSQL启动后创建的第一个进程,负责创建共享内存、初始化锁表和数据库缓冲区等内部数据结构,并监听用户请求,根据需要创建`postgres`进程来处理用户的服务请求。此进程在整个数据库...

    PostgreSQL_原理简介

    - **主进程 (Master)**:通常指的是 `postmaster` 进程,负责监听客户端请求,并启动后端进程处理这些请求。 - **后端进程 (Postgres)**:每个查询执行时都会启动一个独立的后端进程。 - **数据写入器 (Datawriter)*...

    08开源数据库系统-03 PostgreSQL的主题分析-上传1

    postmaster负责启动服务器集群,监听客户请求,分派后台处理进程。辅助进程包括Syslogger、BgWriter、WalWriter、AutoVaccum和PgStat等。这些进程负责记录服务器运行中各类输出信息、回写“脏”数据缓冲区、回写WAL...

    PostgreSQL的架构

    1. Postmaster(Daemon) Process,这是PostgreSQL启动时第一个启动的主后台驻留进程,它负责恢复和初始化共享内存,启动后台进程,并在有客户端请求连接时创建后端进程。 2. Background Process,包括多个后台进程如...

    DNA进化算法及其改进研究样本.doc

    DNA进化算法及其改进研究样本.doc

    基于Matlab的水果识别程序:融合图像处理与深度学习技术

    内容概要:本文详细介绍了使用Matlab编写的水果识别程序。首先简述了人工智能和机器学习在水果识别领域的应用背景,强调了Matlab作为强大编程环境的优势。接着,文章逐步讲解了水果识别程序的具体实现流程,涵盖数据预处理、特征提取、模型训练以及最终的识别算法实现。每个环节都采用了先进的技术和方法,如图像去噪、大小调整、深度学习算法(特别是卷积神经网络CNN),并通过训练神经网络模型来提升识别精度。此外,还讨论了相关技术手段和技术挑战,展示了Matlab在图像处理和计算机视觉方面的强大能力。 适合人群:对图像处理、机器学习感兴趣的科研人员、学生及工程师。 使用场景及目标:适用于希望深入了解Matlab环境下水果识别程序的设计与实现的研究者;旨在帮助使用者掌握从数据准备到模型部署的一系列技能,为实际项目提供理论支持和技术指导。 其他说明:文中不仅提供了详细的程序实现步骤,还对未来发展方向进行了展望,鼓励更多人参与到水果识别及相关领域的研究中。

    scratch少儿编程逻辑思维游戏源码-修复塔.zip

    scratch少儿编程逻辑思维游戏源码-修复塔.zip

    spring-boot-2.5.13.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-天空之球.zip

    scratch少儿编程逻辑思维游戏源码-天空之球.zip

    spring-boot-1.0.2.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-土豆兄弟.zip

    scratch少儿编程逻辑思维游戏源码-土豆兄弟.zip

    scratch少儿编程逻辑思维游戏源码-小鸟冒险.zip

    scratch少儿编程逻辑思维游戏源码-小鸟冒险.zip

    scratch少儿编程逻辑思维游戏源码-跳进火山.zip

    scratch少儿编程逻辑思维游戏源码-跳进火山.zip

    scratch少儿编程逻辑思维游戏源码-跳跃引擎.zip

    scratch少儿编程逻辑思维游戏源码-跳跃引擎.zip

    scratch少儿编程逻辑思维游戏源码-旋转(4).zip

    scratch少儿编程逻辑思维游戏源码-旋转(4).zip

    scratch少儿编程逻辑思维游戏源码-死里逃生.zip

    scratch少儿编程逻辑思维游戏源码-死里逃生.zip

    spring-boot-1.3.5.RELEASE.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-2.6.10.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    HPERP商业软件实施解决方案模板.doc

    HPERP商业软件实施解决方案模板.doc

    spring-boot-2.2.3.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics