Re: Reference to - BUG #18349: ERROR: invalid DSA memory alloc request size 1811939328, CONTEXT: parallel worker - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Reference to - BUG #18349: ERROR: invalid DSA memory alloc request size 1811939328, CONTEXT: parallel worker
Date
Msg-id 3581840.1728887169@sss.pgh.pa.us
Whole thread Raw
In response to Re: Reference to - BUG #18349: ERROR: invalid DSA memory alloc request size 1811939328, CONTEXT: parallel worker  (Andrei Lepikhov <lepihov@gmail.com>)
List pgsql-bugs
Andrei Lepikhov <lepihov@gmail.com> writes:
> My explanation (correct if I'm wrong):
> OUTER JOINs allow NULLs to be in a hash table. At the same time, a hash 
> value for NULL is 0, and it goes to the batch==0.
> If batch number 0 gets overfilled, the 
> ExecParallelHashIncreaseNumBatches routine attempts to increase the 
> number of batches - but nothing happens. The initial batch is still too 
> big, and the number of batches doubles up to the limit.

Interesting point.  If memory serves (I'm too tired to actually look)
the planner considers the statistical most-common-value when
estimating whether an unsplittable hash bucket is likely to be too
big.  It does *not* think about null values ... but it ought to.

However, this does not explain why PHJ would be more subject to
the problem than non-parallel HJ.

            regards, tom lane



pgsql-bugs by date:

Previous
From: Amit Kapila
Date:
Subject: Re: BUG #18644: ALTER PUBLICATION ... SET (publish_via_partition_root) wrong/undocumented behavior.
Next
From: Ba Jinsheng
Date:
Subject: Re: Question of Parallel Hash Join on TPC-H Benchmark