DEV Community

moaz178
moaz178

Posted on

Memory Architecture of Postgres

Postgres is a relational database that runs with multiple processes on a single host.

Certain processes occurs inn postgres which are the following:

Postgres Server Process

This is the parent process. In the previous versions it was called postmater.
pg_ctl is the command that executes the postgres server. It provides a shared area in the memory, runs some backend processes and waits for the queries from client side. The server process listens to one network port that is set to default as 5432. Multiple postgres servers can be run on a single machine as well.

BackEnd process

A process which is called postgres is started by the postgres server, the parent process, and it waits for the queries. A specific database must be provided explicitly because it runs on a single database.

Background Processes

Certain background processes do happen along with backend processes that includes background wirter, WAL writer, statitics collector etc. These are not client-side processes.

Memory Architecture

Two categories are assigned in the memory architecture of postgres. These are

Shared Memory This is used by all of the processes of postgres. It is allocated by Postgres Server whenever it starts up.

Local Memory This is allocated by each backend process for its utility. For query processing each backend process allocates local memory.

Reference: "https://www.interdb.jp/pg/pgsql02.html"

Top comments (0)