there is one <firstterm>client process</firstterm> connected to
exactly one <firstterm>server process</firstterm>. As we do not
know ahead of time how many connections will be made, we have to
- use a <firstterm>master process</firstterm> that spawns a new
- server process every time a connection is requested. This master
+ use a <firstterm>supervisor process</firstterm> (also
+ <firstterm>master process</firstterm>) that spawns a new
+ server process every time a connection is requested. This supervisor
process is called <literal>postgres</literal> and listens at a
specified TCP/IP port for incoming connections. Whenever a request
for a connection is detected the <literal>postgres</literal>
optimal for <productname>PostgreSQL</productname>. Because of the
way that the kernel implements memory overcommit, the kernel might
terminate the <productname>PostgreSQL</productname> postmaster (the
- master server process) if the memory demands of either
+ supervisor server process) if the memory demands of either
<productname>PostgreSQL</productname> or another process cause the
system to run out of virtual memory.
</para>
<para>
There are several ways to shut down the database server. You control
- the type of shutdown by sending different signals to the master
+ the type of shutdown by sending different signals to the supervisor
<command>postgres</command> process.
<variablelist>
The server will send <systemitem>SIGQUIT</systemitem> to all child
processes and wait for them to terminate. If any do not terminate
within 5 seconds, they will be sent <systemitem>SIGKILL</systemitem>.
- The master server process exits as soon as all child processes have
+ The supervisor server process exits as soon as all child processes have
exited, without doing normal database shutdown processing.
This will lead to recovery (by
replaying the WAL log) upon next start-up. This is recommended
From that point on, the client and the new server process
communicate without intervention by the original
<filename>postgres</filename> process. Thus, the
- master server process is always running, waiting for
+ supervisor server process is always running, waiting for
client connections, whereas client and associated server processes
come and go. (All of this is of course invisible to the user. We
only mention it here for completeness.)