2022-05-23 postgres整体体系理解梳理路线

本文详细解析PostgreSQL的架构,涉及backgroundwriter、walwriter、statscollector等模块的功能划分,多进程使用、进程间通信(包括共享内存、信号量及守护进程)、客户端独立进程设计及其背后的ACID事务原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:

从整体上理解postregres结构

整体架构:

postregres做了哪些功能分割

  1. background writer模块
  2. walwriter 模块
  3. stats collector 模块
  4. checkpointer 模块
  5. logical replication launcher  模块

如何做整体上的功能分割的

  1. 使用多进程
  2. 为何要使用多进程的方式
    1. 进程和线程在linux中有哪些区别?
    2. 进程间有哪些通信方式?
    3. 线程间有哪些通信方式?
    4. redis 6.0如何使用多线程的?
      1. 哪些业务使用了分离的线程?
      2. 线程间如何同步的?

如何使用多进程通信的

  1. 使用共享内存
    1. 除了共享内存,还有哪些进程间通信方式
  2. 如何对共享内存采取锁控制的
  3. 守护进程注册信号处理函数
  4. posix有哪些锁?
  5. linux内核有哪些锁?
  6. postres如何实现自己的锁?
    1. 如何使用信号量的?
    2. 为什么要使用信号量?
    3. 如何使用linux的CAS的?
    4. gcc的CAS如何实现的?

客户端连接使用了独立的进程

  1. 为什么客户端连接要使用独立的进程?而非线程或者更小的上下文?
  2. 客户端会话需要保持哪些东西?
  3. 如果客户端不使用独立的进程,还有哪些实现方式?
    1. redis使用了单线程和会话控制,使用场景上有什么不同?
  4. ACID事务特性与客户端保持的变量有哪些关系?
  5. ACID事务特性与postgres整体的属性控制有哪些关系?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟世者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值