Re: Minmax indexes

Claudio Freire <klaussfreire@gmail.com>

From: Claudio Freire <klaussfreire@gmail.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Josh Berkus <josh@agliodbs.com>, Heikki Linnakangas <hlinnakangas@vmware.com>, Andres Freund <andres@2ndquadrant.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2014-08-06T17:08:50Z
Lists: pgsql-hackers
On Wed, Aug 6, 2014 at 1:55 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
> Claudio Freire wrote:
>> On Wed, Aug 6, 2014 at 1:25 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
>> > CREATE INDEX foo ON t USING crange (cols)   -- misspelling of "cringe"?
>> > CREATE INDEX foo ON t USING comprange (cols)
>> > CREATE INDEX foo ON t USING compressedrng (cols)   -- ugh
>> > -- or use an identifier with whitespace:
>> > CREATE INDEX foo ON t USING "compressed range" (cols)
>>
>> The word you'd use there is not necessarily the one you use on the
>> framework, since the framework applies to many such techniques, but
>> the index type there is one specific one.
>>
>> The create command can still use minmax, or rangemap if you prefer
>> that, while the framework's code uses summary or summarizing.
>
> I think you're confusing the AM name with the opclass name.  The name
> you specify in that part of the command is the access method name.  You
> can specify the opclass together with each column, like so:
>
> CREATE INDEX foo ON t USING blockfilter
>         (order_date date_minmax_ops, geometry gis_bbox_ops);

Oh, uh... no, I'm not confusing them, but now I just realized how one
would implement other classes of block filtering indexes, and yeah...
you do it through the opclasses.

I'm sticking to bloom filters:

CREATE INDEX foo ON t USING blockfilter (order_date date_minmax_ops,
path character_bloom_ops);

Cool. Very cool.

So, I like blockfilter a lot. I change my vote to blockfilter ;)


Commits

  1. Refactor per-page logic common to all redo routines to a new function.

  2. Reduce use of heavyweight locking inside hash AM.

  3. Scan the buffer pool just once, not once per fork, during relation drop.

  4. Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>