RE: reloption to prevent VACUUM from truncating empty pages at theend of relation - Mailing list pgsql-hackers

From Tsunakawa, Takayuki
Subject RE: reloption to prevent VACUUM from truncating empty pages at theend of relation
Date
Msg-id 0A3221C70F24FB45833433255569204D1FBBA3F6@G01JPEXMBYT05
Whole thread Raw
In response to Re: reloption to prevent VACUUM from truncating empty pages at theend of relation  (Masahiko Sawada <sawada.mshk@gmail.com>)
List pgsql-hackers
From: Michael Paquier [mailto:michael@paquier.xyz]
> This makes the test page-size sensitive.  While we don't ensure that tests
> can be run with different page sizes, we should make a maximum effort to
> keep the tests compatible if that's easy enough.  In this case you could
> just use > 0 as base comparison.  I can fix that by myself, so no need to
> send a new version.

Good idea.  Done.


> Should we also document that the parameter is effective for autovacuum?
> The name can lead to confusion regarding that.

I'm not sure for the need because autovacuum is just an automatic execution of vacuum, and existing vacuum_xxx
parametersalso apply to autovacuum.  But being specific is good anyway, so I added reference to autovacuum in the
description.


> Also, shouldn't the relopt check happen in should_attempt_truncation()?
> It seems to me that if we use this routine somewhere else then it should
> be controlled by the option.

That makes sense.  Done.


> At the same time, we also have REL_TRUNCATE_FRACTION and
> REL_TRUNCATE_MINIMUM which could be made equally user-tunnable.
> That's more difficult to control, still why don't we also consider this
> part?

I thought of it, too.  But I didn't have a good idea on how to explain those parameters.  I'd like to separate it.


> Another thing that seems worth thinking about is a system-level GUC, and
> an option in the VACUUM command to control if truncation should happen or
> not.  We have a lot of infrastructure to control such options between vacuum
> and autovacuum, so it could be a waste to not consider potential synergies.

Being able to specify this parameter in postgresql.conf and SET (especially ALTER DATABASE/USER to target specific
databases/applications)might be useful, but I'm not sure...  I'm less confident about whether VACUUM command can
specifythis, because this is a property of table under a specific workload, not a changable property of each VACUUM
action. Anyway, I expect it won't be difficult to add those configurability without contradicting the design, so I'm
inclinedto separate it.
 


From: Masahiko Sawada [mailto:sawada.mshk@gmail.com]
> Yeah, that would work. Or it's kind of hackie but the rolling back the
> insertion instead of INSERT and DELETE might also work.

That's good, because it allows us to keep running reloptions test in parallel with other tests.  Done.


Regards
Takayuki Tsunakawa



Attachment

pgsql-hackers by date:

Previous
From: Joe Conway
Date:
Subject: Re: get_controlfile() can leak fds in the backend
Next
From: Michael Paquier
Date:
Subject: Re: get_controlfile() can leak fds in the backend