summaryrefslogtreecommitdiff
path: root/src/backend/utils/mmgr/Makefile
diff options
context:
space:
mode:
authorRobert Haas2016-12-02 17:34:36 +0000
committerRobert Haas2016-12-02 17:34:36 +0000
commit13df76a537cca3b8884911d8fdf7c89a457a8dd3 (patch)
tree2aaa863df0100296015fca37c1ab89b33e86ae7f /src/backend/utils/mmgr/Makefile
parent13e14a78ea15f4c581cae408b5010c13961c96de (diff)
Introduce dynamic shared memory areas.
Programmers discovered decades ago that it was useful to have a simple interface for allocating and freeing memory, which is why malloc() and free() were invented. Unfortunately, those handy tools don't work with dynamic shared memory segments because those are specific to PostgreSQL and are not necessarily mapped at the same address in every cooperating process. So invent our own allocator instead. This makes it possible for processes cooperating as part of parallel query execution to allocate and free chunks of memory without having to reserve them prior to the start of execution. It could also be used for longer lived objects; for example, we could consider storing data for pg_stat_statements or the stats collector in shared memory using these interfaces, rather than writing them to files. Basically, anything that needs shared memory but can't predict in advance how much it's going to need might find this useful. Thomas Munro and Robert Haas. The original code (of mine) on which Thomas based his work was actually designed to be a new backend-local memory allocator for PostgreSQL, but that hasn't gone anywhere - or not yet, anyway. Thomas took that work and performed major refactoring and extensive modifications to make it work with dynamic shared memory, including the addition of appropriate locking. Discussion: CA+TgmobkeWptGwiNa+SGFWsTLzTzD-CeLz0KcE-y6LFgoUus4A@mail.gmail.com Discussion: CAEepm=1z5WLuNoJ80PaCvz6EtG9dN0j-KuHcHtU6QEfcPP5-qA@mail.gmail.com
Diffstat (limited to 'src/backend/utils/mmgr/Makefile')
-rw-r--r--src/backend/utils/mmgr/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/utils/mmgr/Makefile b/src/backend/utils/mmgr/Makefile
index 20973af3ca9..1842bae3866 100644
--- a/src/backend/utils/mmgr/Makefile
+++ b/src/backend/utils/mmgr/Makefile
@@ -12,6 +12,6 @@ subdir = src/backend/utils/mmgr
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global
-OBJS = aset.o freepage.o mcxt.o portalmem.o
+OBJS = aset.o dsa.o freepage.o mcxt.o portalmem.o
include $(top_srcdir)/src/backend/common.mk