Skip site navigation (1) Skip section navigation (2)

Re: gistchoose vs. bloat

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: gistchoose vs. bloat
Date: 2012-10-01 01:15:06
Message-ID: 1349054106.15580.31.camel@jdavis (view raw or flat)
Thread:
Lists: pgsql-hackers
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.

2. Typo in two places: "if randomization id required".

3. In gistRelocateBuildBuffersOnSplit, shouldn't that be:
     splitPageInfo = &relocationBuffersInfos[bufferIndex];
   not:
     splitPageInfo = &relocationBuffersInfos[i];

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.

Regards,
	Jeff Davis



In response to

Responses

pgsql-hackers by date

Next:From: Jeff DavisDate: 2012-10-01 02:09:20
Subject: Re: WIP checksums patch
Previous:From: Jeff DavisDate: 2012-09-30 23:22:01
Subject: Re: Statistics and selectivity estimation for ranges

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group