On Sat, Sep 13, 2008 at 5:26 PM, <david@xxxxxxx> wrote: > On Fri, 12 Sep 2008, Merlin Moncure wrote: >> >> While this is correct, if heavy writing is sustained, especially on >> large databases, you will eventually outrun the write cache on the >> controller and things will start to degrade towards the slow case. So >> it's fairer to say that caching raid controllers burst up to several >> thousand per second, with a sustained write rate somewhat better than >> write-through but much worse than the burst rate. >> >> How fast things degrade from the burst rate depends on certain >> factors...how big the database is relative to the o/s read cache in >> the controller write cache, and how random the i/o is generally. One >> thing raid controllers are great at is smoothing bursty i/o during >> checkpoints for example. >> >> Unfortunately when you outrun cache on raid controllers the behavior >> is not always very pleasant...in at least one case I've experienced >> (perc 5/i) when the cache fills up the card decides to clear it before >> continuing. This means that if fsync is on, you get unpredictable >> random freezing pauses while the cache is clearing. > > although for postgres the thing that you are doing the fsync on is the WAL > log file. that is a single (usually) contiguous file. As such it is very > efficiant to write large chunks of it. so while you will degrade from the > battery-only mode, the fact that the controller can flush many requests > worth of writes out to the WAL log at once while you fill the cache with > them one at a time is still a significant win. The heap files have to be synced as well during checkpoints, etc. merlin