Re: gistchoose vs. bloat

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: gistchoose vs. bloat
Date: 2012-10-03 19:41:05
Message-ID: CAPpHfds2DifG0wRc79R4ZJ8438q8n5pjbcQk238h+Qp_0PnGBw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Oct 1, 2012 at 5:15 AM, Jeff Davis <pgsql(at)j-davis(dot)com> wrote:

> On Tue, 2012-09-04 at 19:21 +0400, Alexander Korotkov wrote:
>
> > New version of patch is attached. Parameter "randomization" was
> > introduced. It controls whether to randomize choose. Choose algorithm
> > was rewritten.
> >
> Review comments:
>
> 1. Comment above while loop in gistRelocateBuildBuffersOnSplit needs to
> be updated.
>

Actually, I didn't realize what exact comment you expect. Check if added
commend meets you expectations.

>
> 2. Typo in two places: "if randomization id required".
>
> 3. In gistRelocateBuildBuffersOnSplit, shouldn't that be:
> splitPageInfo = &relocationBuffersInfos[bufferIndex];
> not:
> splitPageInfo = &relocationBuffersInfos[i];
>

Fixed.

> 4. It looks like the randomization is happening while trying to compare
> the penalties. I think it may be more readable to separate those two
> steps; e.g.
>
> /* create a mapping whether randomization is on or not */
> for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
> offsets[i - FirstOffsetNumber] = i;
>
> if (randomization)
> /* randomize offsets array */
>
> for (i = 0; i < maxoff; i++)
> {
> offset = offsets[i];
> ...
> }
>
> That's just an idea; if you think it's more readable as-is (or if I am
> misunderstanding) then let me know.
>

Actually, current implementation comes from idea of creating possible less
overhead when randomization is off. I'll try to measure overhead in worst
case. If it is low enough then you proposal looks reasonable to me.

------
With best regards,
Alexander Korotkov.

Attachment Content-Type Size
gist_choose_bloat-0.3.patch application/octet-stream 10.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniel Farina 2012-10-03 19:42:37 Re: Hash id in pg_stat_statements
Previous Message Peter Geoghegan 2012-10-03 18:54:27 Re: Hash id in pg_stat_statements