Re: BRIN range operator class

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Alvaro Herrera <alvherre@2ndquadrant.com>, Emre Hasegeli <emre@hasegeli.com>
Cc: Andreas Karlsson <andreas@proxel.se>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Bruce Momjian <bruce@momjian.us>
Date: 2015-05-12T19:54:24Z
Lists: pgsql-hackers
On 05/12/2015 10:49 PM, Alvaro Herrera wrote:
> If in the future, for instance, we come up with a way to store the ipv4
> plus ipv6 info, we will want to change the page format.  If we add a
> page version to the metapage, we can detect the change at pg_upgrade
> time and force a reindex of the index.

A version number in the metapage is a certainly a good idea. But we 
already have that, don't we? :

> /* Metapage definitions */
> typedef struct BrinMetaPageData
> {
> 	uint32		brinMagic;
> 	uint32		brinVersion;
> 	BlockNumber pagesPerRange;
> 	BlockNumber lastRevmapPage;
> } BrinMetaPageData;
>
> #define BRIN_CURRENT_VERSION		1
> #define BRIN_META_MAGIC			0xA8109CFA

Did you have something else in mind?

- Heikki



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>