WIP patch for system-catalog vacuuming via a relation map

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: WIP patch for system-catalog vacuuming via a relation map
Date: 2010-02-05 21:56:22
Message-ID: 6690.1265406982@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Attached is the current state of my work on letting system catalogs
be processed by new-style VACUUM FULL (a/k/a CLUSTER). I haven't done
the WAL support nor worried about interlocking concurrent updates of
relation map files, but it passes the regression tests and can do
VACUUM FULL of every system catalog. So I think this is proof that
the approach is workable and there are no further gotchas to stumble
over in dark recesses of the system. The patch adds about 1250 lines
of code, mostly in a new file relmapper.c, and will be bigger once
WAL support is added. However, I anticipate that we will be able to
rip out probably three times that much code by eliminating VACUUM FULL
INPLACE (commands/vacuum.c is alone almost 4000 lines, though of course
it won't all go away). So it will be a substantial net reduction in
code size, plus we will get the previously discussed benefits such as
removing reindex-in-place for shared indexes.

Barring objections I'm going to press ahead with completing and
committing this; then in a separate patch remove VACUUM FULL INPLACE.

regards, tom lane

Attachment Content-Type Size
relation-mapper-1.patch.gz application/octet-stream 30.3 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2010-02-05 22:00:23 Re: WIP patch for system-catalog vacuuming via a relation map
Previous Message Alex Hunsaker 2010-02-05 21:08:27 Re: Add on_plperl_init and on_plperlu_init to plperl UPDATE 3 [PATCH]