Re: NOLOGGING option, or ?
Simon Riggs <simon@2ndquadrant.com>
From: Simon Riggs <simon@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@surnet.cl>, Bruce Momjian <pgman@candle.pha.pa.us>, Greg Stark <gsstark@mit.edu>, Neil Conway <neilc@samurai.com>, pgsql-hackers@postgresql.org
Date: 2005-06-01T20:17:39Z
Lists: pgsql-hackers
On Wed, 2005-06-01 at 14:24 -0400, Tom Lane wrote: > Alvaro Herrera <alvherre@surnet.cl> writes: > > On Wed, Jun 01, 2005 at 06:55:46PM +0100, Simon Riggs wrote: > >> We're holding the table lock and will continue to do so until end of > >> transaction. No transaction with an earlier id will ever see the data we > >> load because of the lock. > > > Suppose you load half the tuples and the plug is pulled. After > > recovery, you have half-load of tuples that are visible to everyone. > > This is a no-no. > > Simon is expecting that the loaded tuples are guaranteed to be erased > (by table truncation) during recovery. As I just noted I'm unconvinced > of the safety of doing truncations during recovery, so I'd prefer not > to depend on that. > > The scenario I was thinking of was different: you load pre-frozen > tuples, commit, and thereby release the table lock. Now the tuples > are visible to transactions that started before you did; that's what > violates MVCC. Agreed. MVCC violation. OK, back to the drawing board. Best Regards, Simon Riggs