Neil Conway <[EMAIL PROTECTED]> writes:
> There is a TODO item about allowing the delaying of WAL writes. If we 
> maintain the WAL invariant (that is, a WAL record describing a change 
> must hit disk before the change itself does) but simply don't flush the 
> WAL at transaction commit, we should be able to get better performance 
> without the risk of database corruption (so we would need to keep pages 
> modified by the committed transaction pinned in memory until the WAL has 
> been flushed, which might be done on a periodic basis).

That interlock already exists, in the form of the bufmgr LSN logic.

I think this "feature" might be as simple as

            XLogFlush(recptr);

becomes

            /* Must flush if we are deleting files... */
            if (PerCommitFlush || nrels > 0)
                XLogFlush(recptr);

in RecordTransactionCommit.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to