From: | James Coleman <jtc331(at)gmail(dot)com> |
---|---|
To: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Cc: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | Re: BUG #16104: Invalid DSA Memory Alloc Request in Parallel Hash |
Date: | 2019-11-11 14:14:43 |
Message-ID: | CAAaqYe809Qjf8tRyyrnNtGLH1M-F+97bR0xM09Sed+UGhYG3uw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Sun, Nov 10, 2019 at 4:09 PM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
>
> I think I see what's happening: we're running out of hash bits.
>
> > Buckets: 4194304 (originally 4194304) Batches: 32768 (originally 4096) Memory Usage: 344448kB
>
> Here it's using the lower 22 bits for the bucket number, and started
> out using 12 bits for the batch (!), and increased that until it got
> to 15 (!!). After using 22 bits for the bucket, there are only 10
> bits left, so all the tuples go into the lower 1024 batches.
Do we have this kind of problem with hash aggregates also? I've
noticed the temp disk usage pattern applies to both, and the buffers
stats shows that being the case, but unfortunately the hash aggregate
node doesn't report memory usage for its hash or buckets info. Given
it's not a join, maybe we only need buckets and not batches, but I
don't know this part of the code at all, so I'm just guessing to
assume either way.
James
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2019-11-11 15:16:25 | Re: BUG #16104: Invalid DSA Memory Alloc Request in Parallel Hash |
Previous Message | Tomas Vondra | 2019-11-11 10:46:05 | Re: BUG #16104: Invalid DSA Memory Alloc Request in Parallel Hash |