> If "pre-page WAL write" means the value of the page before the current
> changes, then there is generally another reason for writing it out.
>
> Imagine this sequence of events:
> 1. transaction A starts
> 2. transaction B starts
> 3. tran A makes a change
> 4. tran B makes a change
> 5. tran A commits
> 6. all changes get written to disk (this can happen even without fsync,
> for example tran C might do a full table scan which fills the buffer cache
> before B commits)
> 7. the system crashes
>
> When the system comes back up, we need to do a rollback on
> transaction B since it did not commit and we need the "pre-page"
> to know how to undo the change for B that got saved in step 6 above.
>
> At least this is what happens in most DBMSs...
Because we have a non-overwriting storage manager, I don't think this
issue applies to us.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026