DEV Community

Cover image for A quick recap for chapter 2 in "The Internals of PostgreSQL" book
Ahmed Mohamed
Ahmed Mohamed

Posted on

A quick recap for chapter 2 in "The Internals of PostgreSQL" book

To help you better understand the inner workings of this powerful tool, we'll provide an overview of the process architecture and memory architecture in this article.

Process Architecture

The process architecture of PostgreSQL follows a multi-process model, where a collection of multiple processes collaboratively manage a single database cluster. These processes can be categorized into four types: postgres server process, backend process, background process, and replication associated process. The postgres server process is the parent process of all the other processes in a PostgreSQL server. It listens to one network port, allocates a shared memory area in memory, starts various background processes, and waits for connection requests from clients.

the process architecture in PostgreSQL

The background processes in PostgreSQL perform a variety of functions, such as writing dirty pages on the shared buffer pool to persistent storage, performing checkpoint processes, collecting statistics information, and executing archiving logging. These processes work in the background (i.e. WAL writer, autovacuum launcher, checkpointer, background writer) and do not require user intervention. However, it is crucial to understand their role in the system to optimize PostgreSQL's performance.

Memory Architecture

The memory architecture in PostgreSQL can be classified into two broad categories: local memory area and shared memory area. The local memory area is allocated by each backend process for its use and is divided into several sub-areas with fixed or variable sizes. On the other hand, a shared memory area is used by all processes of a PostgreSQL server and is also divided into several fixed-sized sub-areas. The shared buffer pool is used to store and operate pages within tables and indexes from a persistent storage, while the WAL buffer is used for buffering WAL data before writing it to persistent storage.

Memory architecture in PostgreSQL

In summary, understanding the process architecture and memory architecture of PostgreSQL is essential for developers and database administrators to optimize the performance and scalability of their PostgreSQL deployments. This article provides an excellent starting point for exploring these topics in-depth.

Top comments (0)