diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-12-05 17:28:39 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-12-05 17:28:39 -0500 |
commit | ab72716778128fb63d54ac256adf7fe6820a1185 (patch) | |
tree | 499c03ee0689719307ae780a4b66d49314ac2f41 /doc/src | |
parent | 8097d189ccc2cd55a8bf189bd21cb196e3cfc385 (diff) |
Support Parallel Append plan nodes.
When we create an Append node, we can spread out the workers over the
subplans instead of piling on to each subplan one at a time, which
should typically be a bit more efficient, both because the startup
cost of any plan executed entirely by one worker is paid only once and
also because of reduced contention. We can also construct Append
plans using a mix of partial and non-partial subplans, which may allow
for parallelism in places that otherwise couldn't support it.
Unfortunately, this patch doesn't handle the important case of
parallelizing UNION ALL by running each branch in a separate worker;
the executor infrastructure is added here, but more planner work is
needed.
Amit Khandekar, Robert Haas, Amul Sul, reviewed and tested by
Ashutosh Bapat, Amit Langote, Rafia Sabih, Amit Kapila, and
Rajkumar Raghuwanshi.
Discussion: http://postgr.es/m/CAJ3gD9dy0K_E8r727heqXoBmWZ83HwLFwdcaSSmBQ1+S+vRuUQ@mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/config.sgml | 14 | ||||
-rw-r--r-- | doc/src/sgml/monitoring.sgml | 7 |
2 files changed, 20 insertions, 1 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 563ad1fc7f8..9ae6861cd7a 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -3633,6 +3633,20 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class=" </listitem> </varlistentry> + <varlistentry id="guc-enable-parallel-append" xreflabel="enable_parallel_append"> + <term><varname>enable_parallel_append</varname> (<type>boolean</type>) + <indexterm> + <primary><varname>enable_parallel_append</> configuration parameter</primary> + </indexterm> + </term> + <listitem> + <para> + Enables or disables the query planner's use of parallel-aware + append plan types. The default is <literal>on</>. + </para> + </listitem> + </varlistentry> + <varlistentry id="guc-enable-partition-wise-join" xreflabel="enable_partition_wise_join"> <term><varname>enable_partition_wise_join</varname> (<type>boolean</type>) <indexterm> diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 8d461c81459..b6f80d97080 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -845,7 +845,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser <tbody> <row> - <entry morerows="62"><literal>LWLock</literal></entry> + <entry morerows="63"><literal>LWLock</literal></entry> <entry><literal>ShmemIndexLock</literal></entry> <entry>Waiting to find or allocate space in shared memory.</entry> </row> @@ -1117,6 +1117,11 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser <entry>Waiting for TBM shared iterator lock.</entry> </row> <row> + <entry><literal>parallel_append</literal></entry> + <entry>Waiting to choose the next subplan during Parallel Append plan + execution.</entry> + </row> + <row> <entry morerows="9"><literal>Lock</literal></entry> <entry><literal>relation</literal></entry> <entry>Waiting to acquire a lock on a relation.</entry> |