Re: Improving scalability of Parallel Bitmap Heap/Index Scan

From: David Geier <geidav(dot)pg(at)gmail(dot)com>
To: John Naylor <johncnaylorls(at)gmail(dot)com>
Cc: PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Improving scalability of Parallel Bitmap Heap/Index Scan
Date: 2026-10-08 09:10:17
Message-ID: a6868df5-2a57-44fe-8724-876716f2721f@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>> It seems it should be not too much additional work to allow one worker
>> to scan an index serially, and then publish it for repartitioning.
>
> Indeed. Will do.

That made me think what the best way of integrating the repartitioning
step would be: for a parallel BIS doing it as part of the BIS plan node
is still somewhat reasonable but for serial BIS it becomes awkward
because the BIS plan node is serially scanning the index but then
repartitioning in parallel.

How about introducing a new plan node "Parallel Bitmap Partition" which
could look like this in the EXPLAIN output:

Serial scan (e.g. for GIN index, parallel consumption:

-> Bitmap Heap Scan
-> Bitmap And
-> Parallel Bitmap Partition
-> Bitmap Index Scan (executed by single process)
-> Parallel Bitmap Partition
-> Bitmap Index Scan (executed by single process)

Parallel scan (for B-tree), parallel consumption:

-> Bitmap Heap Scan
-> Bitmap And
-> Parallel Bitmap Partition
-> Parallel Bitmap Index Scan
-> Parallel Bitmap Partition
-> Parallel Bitmap Index Scan

BHS and Bitmap And/Or would never be parallel because also in the
parallel case they just process their local partition.

--
David Geier

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nikhil Sontakke 2026-10-08 09:13:45 Re: DDL deparse
Previous Message Chee Wooson 2026-10-08 09:04:41 Re: Re: [PATCH] Discard aborted updaters when expanding a multixact