From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Richard Guo <guofenglinux(at)gmail(dot)com>, "Gregory Stark (as CFM)" <stark(dot)cfm(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Ronan Dunklau <ronan(dot)dunklau(at)aiven(dot)io>, Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Emre Hasegeli <emre(at)hasegeli(dot)com> |
Subject: | Re: Using each rel as both outer and inner for JOIN_ANTI |
Date: | 2023-04-06 04:56:43 |
Message-ID: | CA+hUKG+cQroWxxt-8-fGNBPotABQbHG4aD9vNZ5hhyyF_cH-4g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Apr 6, 2023 at 12:17 PM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
> I tried the original example from the top of this thread and saw a
> decent speedup from parallelism, but only if I set
> min_parallel_table_scan_size=0, and otherwise it doesn't choose
> Parallel Hash Right Anti Join. Same if I embiggen bar significantly.
> Haven't looked yet but I wonder if there is some left/right confusion
> on parallel degree computation or something like that...
Ahh, the problem is just that create_plain_partial_paths() doesn't
bother to create a partial path for foo at all, because it's so small,
so hash_inner_and_outer() can't even consider a parallel join (that
needs partial paths on both sides). What we want here is a shared
hash table so we can have shared match flags, an entirely new concern,
but create_plain_partial_path() can't see any point in a partial scan
of such a small table. It works if you're OK creating partial paths
for everything...
+#if 0
/* If any limit was set to zero, the user doesn't want a
parallel scan. */
if (parallel_workers <= 0)
return;
+#endif
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2023-04-06 05:05:56 | Re: Using each rel as both outer and inner for JOIN_ANTI |
Previous Message | Hayato Kuroda (Fujitsu) | 2023-04-06 04:49:59 | RE: pg_upgrade and logical replication |