Gregory Stark <[EMAIL PROTECTED]> writes: > It's a fundamental shift in the idea of the purpose of bgwriter. Instead of > trying to suck i/o away from the subsequent checkpoint it would be responsible > for all the i/o of the previous checkpoint which would still be in progress > for the entire time of checkpoint_timeout. It would only complete when > bgwriter had finished doing its one full sweep.
I think that's basically the same as the original suggestion, which is to do checkpoints using less than the full I/O bandwidth of the machine --- tying it exactly to the default bgwriter rate may or may not be appropriate. The difficulty with such schemes is that if you go over to using O_DIRECT writes instead of fsync in the bgwriter, it's hard to avoid doing the same when a random backend has to write a dirty buffer --- yet you'd really rather that such a backend not have to wait for the ensuing I/O. And this gets a lot worse if checkpoints are slowed down, because it gets more likely that the bufmgr will run out of clean buffers and have to do a write() from a backend. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate