On 11/20/2014 01:47 PM, Tom Lane wrote:
> Josh Berkus <josh@agliodbs.com> writes:
>> Well, the first thing that comes to mind is that template0 should be
>> "permanently frozen". That is, all objects in it should be created with
>> frozen xid and mxids. After all, nobody can modify anything in it.
>
> That sounds about as unsafe as can be. You can't stop superusers from
> connecting to template0 and modifying it if they want to ... and I don't
> really want to say "ok, the consequence of that is silent disaster many
> moons later".
So it would get unfrozen when they modify it, and they'd have to deal
with it. Right now we're optimizing for something only 0.1% of users
ever do.
The harder part of this -- the handwavy part -- is the whole idea of a
"permanent freeze". Right now there's no way to mark anything as
"frozen until next modifed", we're just resetting the clock on it. If
there were any such thing, it would solve some of the problems around
vacuum freeze.
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com