多进程与多线程(十二)
3.1.1 PostgreSQL基本架构
如图1-PostgreSQL基本结构图,PostgreSQL数据库服务器由几个主进程组成:
1. postmaster进程是一个主管进程,它生成其他进程并监听用户连接。
2. 用户进程(比如psql,或用户应用程序通过JDBC等接口)用来处理交互式SQL查询。postmaster生成一个或多个名为postgres的服务器进程来处理用户的数据请求。
3. 服务器进程通过信号量和共享内存来相互通信。
4. 在Server层,有多个进程,除了响应多用户的多个postgres进程外,系统还将启动几个进程分别完成不同的任务。
5. 如进程bgWriter,将把数据缓存中的内容刷出到外存。
6. 如进程AutoVacuum,将自动定时整理(清理)外存中的数据空间。
7. 如进程pg_state,将自动统计系统运行中的一些动态信息。
8. 如进程WAL,将自动把redo日志刷出到外存。
9. 如进程pg_archive,将自动把redo日志归档到用户自定目录。