Lists: | pgsql-docs |
---|
From: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Parallel index build for BRIN |
Date: | 2024-11-05 09:12:14 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
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
Attachment | Content-Type | Size |
---|---|---|
0001-Doc-parallel-CREATE-INDEX-is-allowed-for-BRIN.patch | text/plain | 2.0 KB |
From: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Parallel index build for BRIN |
Date: | 2024-11-17 08:28:07 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
Hi everyone,
Thisthread doesn'tseem to have attractedattention, 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.
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: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Parallel index build for BRIN |
Date: | 2024-12-08 15:00:25 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
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
Attachment | Content-Type | Size |
---|---|---|
0001-Doc-and-comment-parallel-CREATE-INDEX-is-allowed-for.patch | text/plain | 2.6 KB |
From: | Tomas Vondra <tomas(at)vondra(dot)me> |
---|---|
To: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru>, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Parallel index build for BRIN |
Date: | 2024-12-09 18:54:42 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
On 12/8/24 16:00, Egor Rogov wrote:
> 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 for noticing this and the patches. You're right, this should have
been updated with the BRIN parallel builds. I'll get this committed
sometime the week.
regards
--
Tomas Vondra
From: | Tomas Vondra <tomas(at)vondra(dot)me> |
---|---|
To: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru>, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Parallel index build for BRIN |
Date: | 2024-12-16 18:24:42 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
On 12/9/24 19:54, Tomas Vondra wrote:
> On 12/8/24 16:00, Egor Rogov wrote:
>> Hi,
>>
>> ...
>>
>> 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 for noticing this and the patches. You're right, this should have
> been updated with the BRIN parallel builds. I'll get this committed
> sometime the week.
>
I've pushed the doc fix, and backpatched it to PG 17.
Thanks for the patience!
--
Tomas Vondra
From: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru> |
---|---|
To: | Tomas Vondra <tomas(at)vondra(dot)me>, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Parallel index build for BRIN |
Date: | 2024-12-17 06:40:31 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
On 16.12.2024 21:24, Tomas Vondra wrote:
> On 12/9/24 19:54, Tomas Vondra wrote:
>> On 12/8/24 16:00, Egor Rogov wrote:
>>> Hi,
>>>
>>> ...
>>>
>>> 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 for noticing this and the patches. You're right, this should have
>> been updated with the BRIN parallel builds. I'll get this committed
>> sometime the week.
>>
> I've pushed the doc fix, and backpatched it to PG 17.
Thanks so much, Tomas!
Please note that the comment in src/backend/catalog/index.c remains
unchanged:
--- 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.
*/
From: | Tomas Vondra <tomas(at)vondra(dot)me> |
---|---|
To: | Egor Rogov <e(dot)rogov(at)postgrespro(dot)ru>, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Parallel index build for BRIN |
Date: | 2024-12-17 14:52:25 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-docs |
On 12/17/24 07:40, Egor Rogov wrote:
> On 16.12.2024 21:24, Tomas Vondra wrote:
>
>> On 12/9/24 19:54, Tomas Vondra wrote:
>>> On 12/8/24 16:00, Egor Rogov wrote:
>>>> Hi,
>>>>
>>>> ...
>>>>
>>>> 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 for noticing this and the patches. You're right, this should have
>>> been updated with the BRIN parallel builds. I'll get this committed
>>> sometime the week.
>>>
>> I've pushed the doc fix, and backpatched it to PG 17.
>
>
> Thanks so much, Tomas!
>
> Please note that the comment in src/backend/catalog/index.c remains
> unchanged:
>
>
> --- 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.
> */
>
Oh, thanks for noticing that. I'm not sure why I missed that, I must
have used the first patch by mistake.
Anyway, I found another obsolete comment in planner.c, so I fixed that
too and pushed.
Thanks
--
Tomas Vondra