Tom Lane escribió: > Alvaro Herrera <[EMAIL PROTECTED]> writes: > > Heikki Linnakangas escribi�: > >> Another issue is that reading WAL is inherently not very scalable. There's > >> only one WAL for the whole cluster, and it needs to be read sequentially, > >> so it can easily become a bottleneck on large systems. > > > I have wondered why do we do it this way. Is there a problem with > > having one WAL per database, and another for general operations? This > > last WAL would have changes to shared tables, as well as global stuff > > like "create database" or "create tablespace". > > It would only be useful to have one per spindle-dedicated-to-WAL, so > tying the division to databases doesn't seem like it'd be a good idea.
Keep in mind that there are claims that a write-cache-enabled battery-backed RAID controller negates the effect of a separate spindle. Also, these days people is recommending keeping WAL in a mirrored disk, so you would have to have a mirrored pair for every WAL stream, which starts to sound unworkable. My point, rather, is that with this sort of setup it would be easier to do per-database PITR shipping, and one database's WAL activity would not affect another's (thus hosting providers are happier -- high-rate customer A need not affect low-budget customer B). A totally separate consideration is that of LWLock contention. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org