Re: [HACKERS] Parallel Hash take II
От | Thomas Munro |
---|---|
Тема | Re: [HACKERS] Parallel Hash take II |
Дата | |
Msg-id | CAEepm=3Q5krR05K76gtSsv=p+2HOyRBf4UX8SobPufKDCrPj4A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Parallel Hash take II (Thomas Munro <thomas.munro@enterprisedb.com>) |
Ответы |
Re: [HACKERS] Parallel Hash take II
|
Список | pgsql-hackers |
On Thu, Sep 14, 2017 at 11:57 AM, Thomas Munro <thomas.munro@enterprisedb.com> wrote: > On Thu, Sep 14, 2017 at 12:51 AM, Prabhat Sahu > <prabhat.sahu@enterprisedb.com> wrote: >> Setting with lower "shared_buffers" and "work_mem" as below, query getting crash but able to see explain plan. > > Thanks Prabhat. A small thinko in the batch reset code means that it > sometimes thinks the shared skew hash table is present and tries to > probe it after batch 1. I have a fix for that and I will post a new > patch set just as soon as I have a good regression test figured out. Fixed in the attached version, by adding a missing "hashtable->shared->num_skew_buckets = 0;" to ExecHashFreeSkewTable(). I did some incidental tidying of the regression tests, but didn't manage to find a version of your example small enough to put in a regression tests. I also discovered some other things: 1. Multi-batch Parallel Hash Join could occasionally produce a resowner warning about a leaked temporary File associated with SharedTupleStore objects. Fixed by making sure we call routines that close all files handles in ExecHashTableDetach(). 2. Since last time I tested, a lot fewer TPCH queries choose a Parallel Hash plan. Not sure why yet. Possibly because Gather Merge and other things got better. Will investigate. 3. Gather Merge and Parallel Hash Join may have a deadlock problem. Since Gather Merge needs to block waiting for tuples, but workers wait for all participants (including the leader) to reach barriers. TPCH Q18 (with a certain set of indexes and settings, YMMV) has Gather Merge over Sort over Parallel Hash Join, and although it usually runs successfully I have observed one deadlock. Ouch. This seems to be a more fundamental problem than the blocked TupleQueue scenario. Not sure what to do about that. -- Thomas Munro http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: