"Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> If a B-tree page A was splitted to the page A(changed) and a page B but
> the transaction was rolled back,the pages A,B would not be written to
> disc and the followings could occur for example.
Yes. I have been thinking that it's a mistake not to write changed
pages to disk at transaction abort, because that just makes for a longer
window where a system crash might leave you with corrupted indexes.
I don't think fsync is really essential, but leaving the pages unwritten
in shared memory is bad. (For example, if we next shut down the
postmaster, then the pages will NEVER get written.)
Skipping the update is a bit silly anyway; we aren't really that
concerned about optimizing performance of abort, are we?
regards, tom lane