On Sun, May 17, 2015 at 7:45 AM, Robert Haas <robertmh...@gmail.com> wrote: > > <crazy-idea>I wonder if we could write WAL to two different files in > alternation, so that we could be writing to one file which fsync-ing > the other.</crazy-idea> >
Won't the order of transactions replay during recovery can cause problems if we do alternation while writing. I think this is one of the reasons WAL is written sequentially. Another thing is that during recovery, currently whenever we encounter mismatch in stored CRC and actual record CRC, we call it end of recovery, but with writing to 2 files simultaneously we might need to rethink that rule. I think first point in your mail related to rewrite of 8K block each time needs more thought and may be some experimentation to check whether writing in lesser units based on OS page size or sector size leads to any meaningful gains. Another thing is that if there is high write activity, then group commits should help in reducing IO for repeated writes and in the tests we can try by changing commit_delay to see if that can help (if the tests are already tuned with respect to commit_delay, then ignore this point). With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com