Re: pgsql: Compress GIN posting lists, for smaller index size.

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Compress GIN posting lists, for smaller index size.
Date: 2014-01-22 17:44:35
Message-ID: CAHGQGwFAG==9rH1V043-VwvqgmCzHZEbHb6SpzhzW835m0cf-A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Thu, Jan 23, 2014 at 2:28 AM, Heikki Linnakangas
<heikki(dot)linnakangas(at)iki(dot)fi> wrote:
> Compress GIN posting lists, for smaller index size.
>
> GIN posting lists are now encoded using varbyte-encoding, which allows them
> to fit in much smaller space than the straight ItemPointer array format used
> before. The new encoding is used for both the lists stored in-line in entry
> tree items, and in posting tree leaf pages.
>
> To maintain backwards-compatibility and keep pg_upgrade working, the code
> can still read old-style pages and tuples. Posting tree leaf pages in the
> new format are flagged with GIN_COMPRESSED flag, to distinguish old and new
> format pages. Likewise, entry tree tuples in the new format have a
> GIN_ITUP_COMPRESSED flag set in a bit that was previously unused.
>
> This patch bumps GIN_CURRENT_VERSION from 1 to 2. New indexes created with
> version 9.4 will therefore have version number 2 in the metapage, while old
> pg_upgraded indexes will have version 1. The code treats them the same, but
> it might be come handy in the future, if we want to drop support for the
> uncompressed format.

I failed to compile HEAD because, ISTM, of this patch.

ginvacuum.c:34: error: redefinition of typedef 'GinVacuumState'
../../../../src/include/access/gin_private.h:715: error: previous
declaration of 'GinVacuumState' was here
make[4]: *** [ginvacuum.o] Error 1
make[3]: *** [gin-recursive] Error 2
make[2]: *** [access-recursive] Error 2
make[2]: *** Waiting for unfinished jobs....

$ uname -a
Darwin test.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23
16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64

Regards,

--
Fujii Masao

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Heikki Linnakangas 2014-01-22 17:55:50 pgsql: Fix declaration of GinVacuumState.
Previous Message Heikki Linnakangas 2014-01-22 17:28:48 pgsql: Compress GIN posting lists, for smaller index size.

Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2014-01-22 17:47:05 Re: proposal: hide application_name from other users
Previous Message Andres Freund 2014-01-22 17:42:35 Re: dynamic shared memory and locks