I agree with Tom's reasoning about the suggested simplifications, sorry.
> > 3. Should the WALWriter also do the wal_buffers half-full write at
the
> > start of XLogInsert() ?
>
> That should go away entirely; to me the main point of the
> separate wal-writer process is to take over responsibility
> for not letting too many dirty wal buffers accumulate.
That also sounds a lot simpler, but I think Bruce wanted to be able to
give
some time guarantee to the not waiting for fsync txns.
When a commit only half-filled the page and no more WAL comes in for
a long time, there is only WALWriter to do the IO.
The WALWriter would need to only flush a half-full page after timeout
iff it contains a commit record.
One more question on autocommit:
Do we wait for a flush for an autocommitted DML ?
Seems we generally should not.
Andreas