链接到上一篇:Link
在第二篇文章的第二篇中,我们将尝试探索邮政的体系结构,这些结构主要可以分为两个子体系结构:
- 过程体系结构
- 内存体系结构
过程架构
Postgres本质上是一个具有多进程支持的客户端服务器应用程序。所有进程的主体都是服务器进程本身以后被称为邮政局长。这是父进程。它首先要分配共享内存,启动背景过程以及等待客户连接请求。它管理整个数据库群集。它还负责为客户提供后端流程。在服务器过程之后,我们可以将其余过程分为两种类型,因为我想记住它们:
- 后端流程
- 背景过程:背景作者,Chackpointer等
后端过程
后端流程处理连接客户端的所有查询和语句。每个连接都有自己的后端过程。
背景过程
背景过程具有特定的任务,总共是7个。您可以进一步阅读它们,但是在这里,我只提到一些可以给您一个想法的信息。背景作家写了肮脏的页面来持续的储藏,例如SSD。名称建议检查点的CheckPointer。 Achiever记录了存档日志,依此类推。 TCP连接用于与客户端的连接,只有一个数据库可以使用背景过程,并且需要先由客户端指定。
内存架构
Postgres有两种类型的记忆:本地内存以及全局或共享内存。本地内存分配给每个后端过程,而所有服务器进程都使用共享内存。
本地内存是由后端进程分配的,用于其自身使用,并将其分为不同的目的,例如工作内存和维护工作内存,而共享存储器则分配了服务器本身并由服务器分配在启动时。共享内存也分为子区域,用于存储页面,提交日志等。
堆表的内存可以读取为顺序扫描或更复杂但有效的b-tree索引扫描。