From: | Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Parallel bitmap heap scan |
Date: | 2016-12-13 06:36:33 |
Message-ID: | CAFiTN-uUK5Cupt4aD-nxBWqnoJAfx8P96kEVyeqOj-Gr+8cQWw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Dec 10, 2016 at 5:36 PM, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> Few assorted comments:
Thanks for the review
>
> 1.
> + else if (needWait)
> + {
> + /* Add ourself to wait queue */
> + ConditionVariablePrepareToSleep(&pbminfo->cv);
> + queuedSelf = true;
> + }
>
> With the committed version of condition variables, you can avoid
> calling ConditionVariablePrepareToSleep(). Refer latest parallel
> index scan patch [1].
Oh, I see, Fixed.
>
> 2.
> + <entry><literal>ParallelBitmapScan</></entry>
> + <entry>Waiting for leader to complete the TidBitmap.</entry>
> + </row>
> + <row>
>
> Isn't it better to write it as below:
>
> Waiting for the leader backend to form the TidBitmap.
Done this way..
>
> 3.
> + * Update snpashot info in heap scan descriptor.
>
> /snpashot/snapshot
Fixed
>
> 4.
> #include "utils/tqual.h"
> -
> +#include "miscadmin.h"
>
> static void bitgetpage(HeapScanDesc scan, TBMIterateResult *tbmres);
> -
> +static bool pbms_is_leader(ParallelBitmapInfo *pbminfo);
>
> TBMIterateResult *tbmres;
> -
> + ParallelBitmapInfo *pbminfo = node->parallel_bitmap;
>
> static int tbm_comparator(const void *left, const void *right);
> -
> +void * tbm_alloc_shared(Size size, void *arg);
>
> It seems line deletes at above places are spurious. Please check for
> similar occurrences at other places in patch.
>
Fixed
> 5.
> + bool is_shared; /* need to build shared tbm if set*/
>
> space is required towards the end of the comment (set */).
Fixed
>
> 6.
> + /*
> + * If we have shared TBM means we are running in parallel mode.
> + * So directly convert dsa array to page and chunk array.
> + */
>
> I think the above comment can be simplified as "For shared TBM,
> directly convert dsa array to page and chunk array"
Done this way..
>
> 7.
> + dsa_entry = (void*)(((char*)dsa_entry) + sizeof(dsa_pointer));
>
> extra space is missing at multiple places in above line. It should be
> written as below:
>
> dsa_entry = (void *)(((char *) dsa_entry) + sizeof(dsa_pointer));
Fixed..
>
> Similar stuff needs to be taken care at other places in the patch as
> well. I think it will be better if you run pgindent on your patch.
I have run the pgindent, and taken all the changes whichever was
applicable for added code.
There are some cleanup for "hash-support-alloc-free" also, so
attaching a new patch for this as well.
--
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com
Attachment | Content-Type | Size |
---|---|---|
parallel-bitmap-heap-scan-v4.patch | application/octet-stream | 57.3 KB |
hash-support-alloc-free-v4.patch | application/octet-stream | 4.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Langote | 2016-12-13 06:58:59 | Re: Declarative partitioning - another take |
Previous Message | Ioseph Kim | 2016-12-13 06:15:20 | Proposal: add error message in backend/catalog/index.c |