Re: Pg_upgrade speed for many tables
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Jeff Janes <jeff.janes@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Magnus Hagander <magnus@hagander.net>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2012-11-05T21:37:53Z
Lists: pgsql-hackers
On Mon, Nov 5, 2012 at 06:33:16PM -0300, Alvaro Herrera wrote: > Bruce Momjian escribió: > > On Mon, Nov 5, 2012 at 04:14:47PM -0500, Robert Haas wrote: > > > On Mon, Nov 5, 2012 at 4:07 PM, Jeff Janes <jeff.janes@gmail.com> wrote: > > > > Or have options for pg_dump and pg_restore to insert "set > > > > synchronous_commit=off" into the SQL stream? > > > > > > It would be kind of neat if we had a command that would force all > > > previously-asynchronous commits to complete. It seems likely that > > > very, very few people would care about intermediate pg_dump states, so > > > we could do the whole dump asynchronously and then do "FORCE ALL > > > COMMITS;" or whatever at the end. > > > > Actually, I had assumed that a session disconnection forced a WAL fsync > > flush, but now I doubt that. Seems only server shutdown does that, or a > > checkpoint. Would this work? > > > > SET synchronous_commit=on; > > CREATE TABLE dummy(x int); > > DROP TABLE dummy; > > AFAIR any transaction that modifies catalogs gets sync commit forcibly, > regardless of the setting. And sync commit means you get to wait for Uh, I am not seeing that my testing because I was only doing CREATE TABLE and it was affected by the synchronous_commit value. > all previous transactions to be flushed as well. So simply creating a > temp table ought to do the trick ... I don't think TEMP tables write to WAL, for performance reasons. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +