Why is vacuum_defer_cleanup_age PGC_USERSET?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Why is vacuum_defer_cleanup_age PGC_USERSET?
Date: 2010-07-03 17:07:32
Message-ID: 12395.1278176852@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

It seems to me it ought to be PGC_SIGHUP. In the first place, the
actually important value under normal circumstances is going to be
that seen by autovac workers. There is also some impact on HOT
cleanup, but I can't see any sane argument why you don't want all
backends to be applying the same value for that, since it's difficult
or impossible to predict which session is actually going to HOT-clean
any page. In the second place, it seems completely foolish to let
ordinary unprivileged users mess with the value. Arguably an individual
user could produce a denial of service on HS slaves by cutting his local
value of vacuum_defer_cleanup_age and then vacuuming tables that queries
on the slaves will look at. To the extent that the variable does
anything useful at all, it is the system-wide behavior that is
important, so I see no use-case for changing it in individual sessions
anyway.

It also appears to me to be misclassified. WAL_STANDBY_SERVERS should
be the category for variables that you'd adjust on an HS slave, no?
But this is something that has to be set on the master. Possibly the
best place for it is WAL_REPLICATION.

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2010-07-03 18:03:05 Re: Why is vacuum_defer_cleanup_age PGC_USERSET?
Previous Message subham 2010-07-03 17:04:33 Needs Suggestion