agora inbox for pgsql-docs@postgresql.org
help / color / mirror / Atom feedFrom: Egor Rogov <e.rogov@postgrespro.ru>
To: pgsql-docs@lists.postgresql.org
Subject: Re: Parallel index build for BRIN
Date: Sun, 8 Dec 2024 18:00:25 +0300
Message-ID: <908b63e1-4b79-2889-98d1-1909cac39785@postgrespro.ru> (raw)
In-Reply-To: <009f4101-29a2-850e-6767-72a9104ec89a@postgrespro.ru>
References: <114e2d5d-125e-07d8-94aa-5ad175fb7443@postgrespro.ru>
<009f4101-29a2-850e-6767-72a9104ec89a@postgrespro.ru>
Hi,
On 17.11.2024 11:28, Egor Rogov wrote:
> Hi everyone,
>
> This thread doesn't seem to have attracted attention, so let me try
> again. Two documentation pages claim that B-tree is the only access
> method that supports parallel building, which is no longer true. I
> propose to fix it in a way like this:
>
> diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
> index d54f9049569..b5b1580dee7 100644
> --- a/doc/src/sgml/config.sgml
> +++ b/doc/src/sgml/config.sgml
> @@ -2835,7 +2835,7 @@ include_dir 'conf.d'
> Sets the maximum number of parallel workers that can be
> started by a single utility command. Currently, the parallel
> utility commands that support the use of parallel workers are
> - <command>CREATE INDEX</command> only when building a B-tree
> index,
> + <command>CREATE INDEX</command> when building a B-tree or
> BRIN index,
> and <command>VACUUM</command> without <literal>FULL</literal>
> option. Parallel workers are taken from the pool of processes
> established by <xref linkend="guc-max-worker-processes"/>,
> limited
> diff --git a/doc/src/sgml/ref/create_index.sgml
> b/doc/src/sgml/ref/create_index.sgml
> index 621bc0e253c..208389e8006 100644
> --- a/doc/src/sgml/ref/create_index.sgml
> +++ b/doc/src/sgml/ref/create_index.sgml
> @@ -808,7 +808,7 @@ Indexes:
> leveraging multiple CPUs in order to process the table rows faster.
> This feature is known as <firstterm>parallel index
> build</firstterm>. For index methods that support building indexes
> - in parallel (currently, only B-tree),
> + in parallel (currently, B-tree and BRIN),
> <varname>maintenance_work_mem</varname> specifies the maximum
> amount of memory that can be used by each index build operation as
> a whole, regardless of how many worker processes were started.
I've spotted another mention of B-tree being the only AM that supports
parallel builds: comment in src/backend/catalog/index.c. As this mention
is not visible to the users, I'd propose removing it altogether rather
than fixing it. Updated patch is attached.
>
> Thanks,
> Egor
>
>
> On 05.11.2024 12:12, Egor Rogov wrote:
>> Hi,
>>
>> Commit b4375717 introduced parallel CREATE INDEX for BRIN. I've
>> noticed that a couple of documentation pages need to be updated
>> accordingly. A small patch is attached.
>>
>> Thanks,
>> Egor
From 625fa1fbdce1746285d00dd26c632845ab775a51 Mon Sep 17 00:00:00 2001
From: Egor Rogov <e.rogov@postgrespro.ru>
Date: Sun, 8 Dec 2024 17:45:19 +0300
Subject: [PATCH] Doc and comment: parallel CREATE INDEX is allowed for BRIN
Commit b4375717 introduced parallel index build for BRIN,
but missed updating the documentation and code comment about it.
---
doc/src/sgml/config.sgml | 2 +-
doc/src/sgml/ref/create_index.sgml | 2 +-
src/backend/catalog/index.c | 3 +--
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index e0c8325a39c..24bd504c213 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -2843,7 +2843,7 @@ include_dir 'conf.d'
Sets the maximum number of parallel workers that can be
started by a single utility command. Currently, the parallel
utility commands that support the use of parallel workers are
- <command>CREATE INDEX</command> only when building a B-tree index,
+ <command>CREATE INDEX</command> when building a B-tree or BRIN index,
and <command>VACUUM</command> without <literal>FULL</literal>
option. Parallel workers are taken from the pool of processes
established by <xref linkend="guc-max-worker-processes"/>, limited
diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml
index 621bc0e253c..208389e8006 100644
--- a/doc/src/sgml/ref/create_index.sgml
+++ b/doc/src/sgml/ref/create_index.sgml
@@ -808,7 +808,7 @@ Indexes:
leveraging multiple CPUs in order to process the table rows faster.
This feature is known as <firstterm>parallel index
build</firstterm>. For index methods that support building indexes
- in parallel (currently, only B-tree),
+ in parallel (currently, B-tree and BRIN),
<varname>maintenance_work_mem</varname> specifies the maximum
amount of memory that can be used by each index build operation as
a whole, regardless of how many worker processes were started.
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 1c3a9e06d37..fc1c2a8d026 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -2988,8 +2988,7 @@ index_build(Relation heapRelation,
Assert(PointerIsValid(indexRelation->rd_indam->ambuildempty));
/*
- * Determine worker process details for parallel CREATE INDEX. Currently,
- * only btree has support for parallel builds.
+ * Determine worker process details for parallel CREATE INDEX.
*
* Note that planner considers parallel safety for us.
*/
--
2.37.1 (Apple Git-137.1)
Attachments:
[text/plain] 0001-Doc-and-comment-parallel-CREATE-INDEX-is-allowed-for.patch (2.6K, ../908b63e1-4b79-2889-98d1-1909cac39785@postgrespro.ru/2-0001-Doc-and-comment-parallel-CREATE-INDEX-is-allowed-for.patch)
download | inline diff:
From 625fa1fbdce1746285d00dd26c632845ab775a51 Mon Sep 17 00:00:00 2001
From: Egor Rogov <e.rogov@postgrespro.ru>
Date: Sun, 8 Dec 2024 17:45:19 +0300
Subject: [PATCH] Doc and comment: parallel CREATE INDEX is allowed for BRIN
Commit b4375717 introduced parallel index build for BRIN,
but missed updating the documentation and code comment about it.
---
doc/src/sgml/config.sgml | 2 +-
doc/src/sgml/ref/create_index.sgml | 2 +-
src/backend/catalog/index.c | 3 +--
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index e0c8325a39c..24bd504c213 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -2843,7 +2843,7 @@ include_dir 'conf.d'
Sets the maximum number of parallel workers that can be
started by a single utility command. Currently, the parallel
utility commands that support the use of parallel workers are
- <command>CREATE INDEX</command> only when building a B-tree index,
+ <command>CREATE INDEX</command> when building a B-tree or BRIN index,
and <command>VACUUM</command> without <literal>FULL</literal>
option. Parallel workers are taken from the pool of processes
established by <xref linkend="guc-max-worker-processes"/>, limited
diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml
index 621bc0e253c..208389e8006 100644
--- a/doc/src/sgml/ref/create_index.sgml
+++ b/doc/src/sgml/ref/create_index.sgml
@@ -808,7 +808,7 @@ Indexes:
leveraging multiple CPUs in order to process the table rows faster.
This feature is known as <firstterm>parallel index
build</firstterm>. For index methods that support building indexes
- in parallel (currently, only B-tree),
+ in parallel (currently, B-tree and BRIN),
<varname>maintenance_work_mem</varname> specifies the maximum
amount of memory that can be used by each index build operation as
a whole, regardless of how many worker processes were started.
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 1c3a9e06d37..fc1c2a8d026 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -2988,8 +2988,7 @@ index_build(Relation heapRelation,
Assert(PointerIsValid(indexRelation->rd_indam->ambuildempty));
/*
- * Determine worker process details for parallel CREATE INDEX. Currently,
- * only btree has support for parallel builds.
+ * Determine worker process details for parallel CREATE INDEX.
*
* Note that planner considers parallel safety for us.
*/
--
2.37.1 (Apple Git-137.1)
view thread (7+ messages) latest in thread
Message-ID: <908b63e1-4b79-2889-98d1-1909cac39785@postgrespro.ru>
Permalink: ../908b63e1-4b79-2889-98d1-1909cac39785@postgrespro.ru/
Also on: postgresql.org/message-id/908b63e1-4b79-2889-98d1-1909cac39785@postgrespro.ru
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: e.rogov@postgrespro.ru, pgsql-docs@lists.postgresql.org
Subject: Re: Parallel index build for BRIN
In-Reply-To: <908b63e1-4b79-2889-98d1-1909cac39785@postgrespro.ru>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox