Re: NOLOGGING option, or ?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@surnet.cl>
Cc: Simon Riggs <simon@2ndquadrant.com>, Bruce Momjian <pgman@candle.pha.pa.us>, Greg Stark <gsstark@mit.edu>, Neil Conway <neilc@samurai.com>, pgsql-hackers@postgresql.org
Date: 2005-06-01T18:24:39Z
Lists: pgsql-hackers
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. regards, tom lane