1996-10-27 04:55:05 -05:00
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
#
|
|
|
|
|
# Makefile--
|
2004-05-29 18:48:23 -04:00
|
|
|
# Makefile for src/backend/postmaster
|
1996-10-27 04:55:05 -05:00
|
|
|
#
|
|
|
|
|
# IDENTIFICATION
|
2010-09-20 16:08:53 -04:00
|
|
|
# src/backend/postmaster/Makefile
|
1996-10-27 04:55:05 -05:00
|
|
|
#
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
2000-08-31 12:12:35 -04:00
|
|
|
subdir = src/backend/postmaster
|
|
|
|
|
top_builddir = ../../..
|
|
|
|
|
include $(top_builddir)/src/Makefile.global
|
1996-10-27 04:55:05 -05:00
|
|
|
|
2019-11-05 17:41:07 -05:00
|
|
|
OBJS = \
|
|
|
|
|
autovacuum.o \
|
2021-08-05 15:09:19 -04:00
|
|
|
auxprocess.o \
|
2019-11-05 17:41:07 -05:00
|
|
|
bgworker.o \
|
|
|
|
|
bgwriter.o \
|
|
|
|
|
checkpointer.o \
|
|
|
|
|
fork_process.o \
|
2019-12-17 13:14:28 -05:00
|
|
|
interrupt.o \
|
2024-03-18 05:35:05 -04:00
|
|
|
launch_backend.o \
|
2019-11-05 17:41:07 -05:00
|
|
|
pgarch.o \
|
Assign a child slot to every postmaster child process
Previously, only backends, autovacuum workers, and background workers
had an entry in the PMChildFlags array. With this commit, all
postmaster child processes, including all the aux processes, have an
entry. Dead-end backends still don't get an entry, though, and other
processes that don't touch shared memory will never mark their
PMChildFlags entry as active.
We now maintain separate freelists for different kinds of child
processes. That ensures that there are always slots available for
autovacuum and background workers. Previously, pre-authentication
backends could prevent autovacuum or background workers from starting
up, by using up all the slots.
The code to manage the slots in the postmaster process is in a new
pmchild.c source file. Because postmaster.c is just so large.
Assigning pmsignal slot numbers is now pmchild.c's responsibility.
This replaces the PMChildInUse array in pmsignal.c.
Some of the comments in postmaster.c still talked about the "stats
process", but that was removed in commit 5891c7a8ed. Fix those while
we're at it.
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://www.postgresql.org/message-id/a102f15f-eac4-4ff2-af02-f9ff209ec66f@iki.fi
2024-11-14 09:12:28 -05:00
|
|
|
pmchild.o \
|
2019-11-05 17:41:07 -05:00
|
|
|
postmaster.o \
|
|
|
|
|
startup.o \
|
|
|
|
|
syslogger.o \
|
Add a new WAL summarizer process.
When active, this process writes WAL summary files to
$PGDATA/pg_wal/summaries. Each summary file contains information for a
certain range of LSNs on a certain TLI. For each relation, it stores a
"limit block" which is 0 if a relation is created or destroyed within
a certain range of WAL records, or otherwise the shortest length to
which the relation was truncated during that range of WAL records, or
otherwise InvalidBlockNumber. In addition, it stores a list of blocks
which have been modified during that range of WAL records, but
excluding blocks which were removed by truncation after they were
modified and never subsequently modified again.
In other words, it tells us which blocks need to copied in case of an
incremental backup covering that range of WAL records. But this
doesn't yet add the capability to actually perform an incremental
backup; the next patch will do that.
A new parameter summarize_wal enables or disables this new background
process. The background process also automatically deletes summary
files that are older than wal_summarize_keep_time, if that parameter
has a non-zero value and the summarizer is configured to run.
Patch by me, with some design help from Dilip Kumar and Andres Freund.
Reviewed by Matthias van de Meent, Dilip Kumar, Jakub Wartak, Peter
Eisentraut, and Álvaro Herrera.
Discussion: http://postgr.es/m/CA+TgmoYOYZfMCyOXFyC-P+-mdrZqm5pP2N7S-r0z3_402h9rsA@mail.gmail.com
2023-12-20 08:41:09 -05:00
|
|
|
walsummarizer.o \
|
2019-11-05 17:41:07 -05:00
|
|
|
walwriter.o
|
1996-10-27 04:55:05 -05:00
|
|
|
|
2008-02-19 05:30:09 -05:00
|
|
|
include $(top_srcdir)/src/backend/common.mk
|