]> granicus.if.org Git - postgresql/commit
Create an infrastructure for parallel computation in PostgreSQL.
authorRobert Haas <rhaas@postgresql.org>
Thu, 30 Apr 2015 19:02:14 +0000 (15:02 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 30 Apr 2015 19:02:14 +0000 (15:02 -0400)
commit924bcf4f16d54c55310b28f77686608684734f42
tree79f35bf679c6a68dbe725cc90248a553f2b9e019
parent669c7d20e6374850593cb430d332e11a3992bbcf
Create an infrastructure for parallel computation in PostgreSQL.

This does four basic things.  First, it provides convenience routines
to coordinate the startup and shutdown of parallel workers.  Second,
it synchronizes various pieces of state (e.g. GUCs, combo CID
mappings, transaction snapshot) from the parallel group leader to the
worker processes.  Third, it prohibits various operations that would
result in unsafe changes to that state while parallelism is active.
Finally, it propagates events that would result in an ErrorResponse,
NoticeResponse, or NotifyResponse message being sent to the client
from the parallel workers back to the master, from which they can then
be sent on to the client.

Robert Haas, Amit Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke.
Suggestions and review from Andres Freund, Heikki Linnakangas, Noah
Misch, Simon Riggs, Euler Taveira, and Jim Nasby.
37 files changed:
contrib/postgres_fdw/connection.c
src/backend/access/heap/heapam.c
src/backend/access/transam/Makefile
src/backend/access/transam/README.parallel [new file with mode: 0644]
src/backend/access/transam/parallel.c [new file with mode: 0644]
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c
src/backend/access/transam/xlog.c
src/backend/catalog/namespace.c
src/backend/commands/copy.c
src/backend/commands/sequence.c
src/backend/executor/execMain.c
src/backend/executor/functions.c
src/backend/executor/spi.c
src/backend/libpq/pqmq.c
src/backend/postmaster/bgworker.c
src/backend/storage/ipc/procarray.c
src/backend/storage/ipc/procsignal.c
src/backend/storage/lmgr/predicate.c
src/backend/tcop/postgres.c
src/backend/tcop/utility.c
src/backend/utils/adt/lockfuncs.c
src/backend/utils/fmgr/dfmgr.c
src/backend/utils/misc/guc.c
src/backend/utils/time/combocid.c
src/backend/utils/time/snapmgr.c
src/include/access/parallel.h [new file with mode: 0644]
src/include/access/xact.h
src/include/catalog/namespace.h
src/include/fmgr.h
src/include/libpq/pqmq.h
src/include/miscadmin.h
src/include/postmaster/bgworker.h
src/include/storage/procarray.h
src/include/storage/procsignal.h
src/include/utils/combocid.h
src/include/utils/snapmgr.h