On Thu, 20 Oct 2022 at 16:03, Zhang Mingli <zmlpostg...@gmail.com> wrote: > As said in parallel.smgl: > > In a parallel sequential scan, the table's blocks will be divided among the > cooperating processes. Blocks are handed out one at a time, so that access to > the table remains sequential.
> Shall we update the documents? Yeah, 56788d215 should have updated that. Seems I didn't expect that level of detail in the docs. I've attached a patch to address this. I didn't feel the need to go into too much detail about how the sizes of the ranges are calculated. I tried to be brief, but I think I did leave enough in there so that a reader will know that we don't just make the range length <nblocks> / <nworkers>. I'll push this soon if nobody has any other wording suggestions. Thanks for the report. David
diff --git a/doc/src/sgml/parallel.sgml b/doc/src/sgml/parallel.sgml index c37fb67065..e556786e2b 100644 --- a/doc/src/sgml/parallel.sgml +++ b/doc/src/sgml/parallel.sgml @@ -272,8 +272,9 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%'; <listitem> <para> In a <emphasis>parallel sequential scan</emphasis>, the table's blocks will - be divided among the cooperating processes. Blocks are handed out one - at a time, so that access to the table remains sequential. + be divided into ranges and shared among the cooperating processes. Each + worker process will complete the scanning of its given range of blocks before + requesting an additional range of blocks. </para> </listitem> <listitem>