首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​深入浅出PostgreSQL 架构

​深入浅出PostgreSQL 架构

作者头像
用户4700054
发布2022-08-17 11:42:36
发布2022-08-17 11:42:36
1.3K0
举报
PostgreSQL架构

  • PostgreSQL物理架构是由shared memory(共享内存)、background process(后台进程)和data files(数据文件)组成
  • shared memory(共享内存)是为了database和transaction log提供cache.最核心的是shared buffer和wal buffers
    • shard buffer 是减少磁盘IO而设计的。shard buffer能否加速让大量数据访问、减少大量用户统一时间访问的资源征用
    • wal buffer是临时存储数据库的变化,wal buffer的日志数据定期会flush到wal file

PostgreSQL 进程模型

PostgreSQL进程类型

  • Postmaster Daemon 进程(postmaster process)
  • PostgreSQL Background进程(background process)
  • PostgreSQL Backend进程(backend process)

Postmaster Daemon 进程

  • Postmaster进程是PostgreSQL启动的第一个进程,它的主要工作是负责执行数据库的recovery、初始化shared memory和启动运行PostgreSQL的后台进程。

PostgreSQL Background进程

  • logger :该进程负责把错误日志写入到logfile
  • checkpointer :检查点进程负责检查点发生时候,负责dirty buffer写入文件
  • background writer :写进程负责周期性的dirty buffer写入到文件
  • walwriter :该进程负责把wal buffer数据写入到wal 文件
  • autovacuum launcher :该进程负责清理工作,核心是做三方面的事情
    • 清理表中的已经删除记录
    • 更新表的统计信息以供优化器使用
    • autovacuum launcher使用stats collector后台进程收集统计信息来确定autovacuum候选列表。
  • archiver : 当日志归档时候,该进程负责把WAL 文件拷贝到指定的目录
  • stats collector :statistics collector 负责对数据库,表,函数的调用次数进行统计,通过socket与执行查询的进程进行通信,当执行语句的进程,在执行一条语句时,会在执行前,把上条语句的统计信息通过socket发送给 statistics collector 进程,这样做是因为上个事务已经 commit 或 rollback 了,统计的是事务已完成的数量

PostgreSQL Backend进程

  • 应用通过 TCP 和PostgreSQL建立连接,当客户端连接断开时,服务端的连接消失。允许多个客户端同时连接,连接数由 max_connections 参数控制,默认是 100,如果客户端频繁的和服务端建立连接然后断开。
  • 该进程负责接受来自应用的请求,同时把请求的响应给客户端
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PostgreSQL架构
  • PostgreSQL 进程模型
    • PostgreSQL进程类型
    • Postmaster Daemon 进程
  • PostgreSQL Background进程
  • PostgreSQL Backend进程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档