fillfactor hides autovacuum parameters in 8.4.0

From: Itagaki Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>
To: pgsql-bugs(at)postgresql(dot)org
Subject: fillfactor hides autovacuum parameters in 8.4.0
Date: 2009-08-18 10:11:27
Message-ID: 20090818185219.9DA6.52131E4D@oss.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

PostgreSQL version: 8.4.0
Operating system: all versions

If we set FILLFACTOR to a table, autovacuum parameters in postgresql.conf
will not affect to the table; default values are always used.

In 8.4.0, we create StdRdOptions if a relation has some fields in
pg_class.reloption. Then, unspecified fields are filled with the
default values. The values are always hard-coded default values and
don't reflect current GUC settings.

For example:
pg_class.reloptions = {fillfactor=70}
makes
StdRdOptions { fillfactor=70, vacuum_scale_factor=0.2, ... }
~~~~~~~~~~~~~~~~~~~~~~~
always default

To fix the bug, each field in StdRdOptions should have "not-specified" flag.
If not specified, autovacuum should use current GUC settings instead of
reloptions. Is it possible to change the default values of reloptions
to some magic number (-1 or so) ?

There might be another idea that we fill StdRdOptions with current GUC
settings instead of hard-coded default values. It looks cleaner, but
we need to treat dynamic default values and invalidate reloptions
if we reload settings.

How do we fix it?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message veneti 2009-08-18 10:35:16 BUG #4991: problem with ODBC driver 8.4
Previous Message Robert Haas 2009-08-18 02:14:51 Re: BUG #4971: Backend crash while doing nothing...

Browse pgsql-hackers by date

  From Date Subject
Next Message simon@2ndquadrant.com 2009-08-18 10:13:08 Lazy Snapshots
Previous Message Mark Cave-Ayland 2009-08-18 09:21:11 Re: Another try at reducing repeated detoast work for PostGIS