On Fri, 2008-10-31 at 13:14 -0400, Tom Lane wrote:
> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> > archive_mode = on disables the optimization to skip WAL-logging when
> > loading into a new table that was created in the same transaction.
>
> ... and affects a whole bunch of other behaviors too, in processes all
> across the database that could not possibly adopt a new setting
> synchronously. That's exactly why it was made a postmaster-start option
> to begin with. Simon's given no argument at all why it would be safe to
> flip it on-the-fly.
First, you are right my initial sketch missed a couple of obvious
mechanisms. But those aren't correctness issues.
Flipping in mid-execution wasn't really what I was proposing. That would
clearly be a big problem. Even between statements could be a problem.
The number of places that test XLogArchivingActive() is fairly small and
infrequently executed, so it would be OK to check a shared memory value
at those points and retain the setting for the rest of the transaction.
Anyway, I think this is worth fixing before release but it clearly isn't
worth attempting to rush a patch in the next few hours. I don't think
we'll find anyone who is happy with making it a restart-required option.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support