Re: pgsql: Add parallel-aware hash joins.

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-committers <pgsql-committers@postgresql.org>
Date: 2018-01-01T22:42:28Z
Lists: pgsql-hackers
On 2017-12-31 10:59:26 +1300, Thomas Munro wrote:
> On Sun, Dec 31, 2017 at 5:16 AM, Andres Freund <andres@anarazel.de> wrote:
> >> In a race case, EXPLAIN ANALYZE could fail to display correct nbatch and size
> >> information.  Refactor so that participants report only on batches they worked
> >> on rather than trying to report on all of them, and teach explain.c to
> >> consider the HashInstrumentation object from all participants instead of
> >> picking the first one it can find.  This should fix an occasional build farm
> >> failure in the "join" regression test.
> >
> > This seems buggy independent of whether it fixes the issue on prairedog,
> > right? So I'm inclined to go ahead and just fix it...
> 
> +1

Pushed your updated version.

Thanks,

Andres


Commits

  1. Update obsolete sentence in README.parallel.

  2. Rewrite ConditionVariableBroadcast() to avoid live-lock.

  3. Tweak parallel hash join test case in hopes of improving stability.

  4. Rename pg_rewind's copy_file_range() to avoid conflict with new linux syscall.

  5. Fix some minor errors in new PHJ code.

  6. Fix EXPLAIN ANALYZE output for Parallel Hash.

  7. Fix rare assertion failure in parallel hash join.

  8. Cancel CV sleep during subtransaction abort.

  9. Add parallel-aware hash joins.

  10. Fix EXPLAIN ANALYZE of hash join when the leader doesn't participate.

  11. Add some regression tests that exercise hash join code.