On Thu, 20 Oct 2022 at 16:03, Zhang Mingli <[email protected]> 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>