看着下面这个图,
就想到了“孔雀开屏”。从
main
开始经过细致、周密的准备,
pg
启动了
postmaster
进程、系统日志进程、昙花一现的启动进程、后台写进程、写
WAL
日志进程、……,最后在服务器段抛出一句
”
database system is ready to accept
connections
”
,开始准备对外提供服务。如果这时有客户端请求,就启动
postgres
服务进程提供服务。
从
main
开始,初始化内存上下文、设置时区、设置行政区时间、设置
SSL
、分配共享内存、在共享内存里初始化一系列对象和设施、设置文件描述、初始化后台进程列表、设置信号处理句柄、加载
hba
等文件,再加上共同的错误、日志处理模块、内部实现的
PG_TRY
、
PG_CATCH
、
PG_END_TRY
,各进程相同的内存管理机制,还有处理并发的锁机制等等,构成了“孔雀”的体,其中内存上下文每个
pg
进程都有一套,共享内存由所有进程共同使用。然后启动相关辅助进程和提供服务的
postgres
服务进程,构成了“孔雀开屏”的“屏”。如果给点并发,这个“屏”就开的更大更炫目了。加上做
IPC
的文件、管道、信号、共享内存等这些经络,这个“孔雀”活了。
Pg
的多进程架构经住了很多严苛场景的考验,如果把其中数据库相关业务逻辑干掉,
pg
就可以是个不错的通用多进程程序架构,可以在上面填入自己的业务逻辑代码,少花好多精力得了一个非常棒的多进程架构,有需要的可以考虑。要是把
fork
换成
ThreadCreate
,
稍加改造,
这也是个很好的多线程程序架构。
“孔雀开屏”图
------------
转载请著明出处,来自博客:
blog.csdn.net/beiigang
beigang.iteye.com
- 大小: 52.5 KB
分享到:
相关推荐
Python编写PostgreSQL数据库结构比对程序源代码,该源代码导入PyCharm即可运行使用。
PostgreSQL9.5 架构图:包含了进程结构、缓存结构,表结构、wal日志结构等
CynosDB for PostgreSQL 一主多读架构
pgjdbc, PostgreSQL驱动程序驱动程序 驱动程序PostgreSQL驱动程序( 短 PgJDBC ) 允许Java程序使用标准的数据库独立Java代码连接到PostgreSQL数据库。 是用纯 Java ( 类型 4 ) 编写的开放源码JDBC驱动程序,并在...
CynosDB for PostgreSQL 一主多读架构.pdf
CynosDB for PostgreSQL一主多读架构设计.pptx
CynosDB for PostgreSQL一主多读架构介绍.pptx
npgsql, Npgsql是PostgreSQL的.NET 数据提供程序 Npgsql -. NET 数据提供程序 什么是 Npgsql?Npgsql是用于PostgreSQL的.NET 数据提供程序。 它允许你使用. NET. 连接和与PostgreSQL服务器交互有关任何其他信息,请...
arm架构下的postgresql库文件,postgresql版本postgresql-11.1.tar.bz2。本类库我为编译poco,poco可编译。
PostgreSQL数据库的列式存储cstore_fdw 钩子函数CStoreProces的函数架构思维导图,详细分析请见我的博客:https://rng-songbaobao.blog.csdn.net/
SpringBoot配置Mybaits连接PostgreSql三层架构实现增改删。结构代码规范齐全,上传的是整个工作空间。
数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB 数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB 数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用 EPUB
postgresql-provider, PostgreSQL网络框架的PostgreSQL提供程序 用于蒸汽的PostgreSQL ( PostgreSQL ) 提供商将PostgreSQL支持添加到Vapor框架。先决条件必须安装 PostgreSQL C 驱动程序才能使用这里软件包。按照 ...
postgresql分布式数据库架构文档。Postgres-XC提供同步多主复制、任意数据节点可写等等多种功能。
postgreSQL的ODBC驱动程序(X64)
postgresql 安装程序。这是个开源的数据库管理程序。
《PostgreSQL 9.0性能调校》内容包括 为处理高要求的应用程序而升级PostgreSQL安装的最佳实践; 揭秘硬件适合或不适合高性能数据库应用程序的原因;...探索如何使用PostgreSQL 9.0新增特性来架构复制的系统。
Postgresql
Ubuntu12.04下面分布式安装部署, postgresql9.1数据库, 有架构原理图,很详细的安装过程介绍,与截图
OLEDB驱动程序大全 PostgreSQL-OleDB-Provider