当前位置: 首页 > news >正文

【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)

1. Startup Process 进程

postmaster 初始化过程中, 在进入 ServerLoop() 函数之前,会先通过调用 StartChildProcess() 函数来开启辅助进程,这些进程的目的主要用来完成数据库的 XLOG 相关处理。 如:

  • 核实 pg_wal 和 pg_wal/archive_status 文件是否存在
  • Postgres先前是否发送崩溃;若崩溃,则尝试读取XLOG 重放、恢复
  • 归档恢复、REDO 等等

本文将讲解一个非常重要的知识点,就是 辅助进程执行完成后,如何与 postmaster 进程交互(因为辅助进程也是 fork(), 在子进程中处理自己的业务逻辑。)

请添加图片描述

1.1 信号交互实现关键

Postgres 内核实现主要过程如下:

  • StartupProcessMain() 函数处理完成后,会调用 proc_exit(0) 。(正常退出。退出代码 0 向 postmaster 表明我们已成功完成恢复)

    • proc
http://www.lryc.cn/news/494491.html

相关文章:

  • NSSCTF-做题笔记
  • 【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()
  • springboot旅游管理系统的设计与实现
  • k8s 1.28 聚合层部署信息记录
  • 自由学习记录(25)
  • 关于函数式接口和编程的解析和案例实战
  • Linux 僵尸进程和孤儿进程, 进程优先级
  • 爬虫笔记24——纷玩岛自动抢票脚本笔记
  • 《白帽子讲Web安全》15-16章
  • 计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark
  • 大语言模型压缩技术;推理优化技术;SparseGPT算法;GPTQ算法
  • Facebook的开源项目解析:推动开发者社区的技术进步
  • 力扣--LCR 149.彩灯装饰记录I
  • Rust SQLx CLI 同步迁移数据库
  • 批量生成不同用户的pdf 文件(html样式)
  • 混淆零碎知识点
  • 排序算法2
  • 【Web开发基础学习——corsheaders 应用的理解】
  • Redis和MySQL之间如何进行数据同步
  • css:转换
  • 状态管理与存储:Vuex 和 sessionStorage
  • Redis和MySQL保持一致性的延迟双删(Delay Double Delete)策略
  • 快速理解微服务中Fegin的概念
  • 新增工作台模块,任务中心支持一键重跑,MeterSphere开源持续测试工具v3.5版本发布
  • 快速搭建一个博客!!!“Halo框架深度优化:搭建你的个性化博客或网站”
  • 009 STM32 HAL库介绍
  • 【微服务】 Eureka和Ribbon
  • 6.算法移植第六篇 YOLOV5/rknn生成可执行文件部署在RK3568上
  • element的el-table表格标题用css自定义是否必填,用添加伪类的方式标红色*
  • 数据仓库: 8- 数据仓库性能优化