I've gone through the code, and altered about 200 instances of wfQuery() to specify whether it is reading or writing. No warranty expressed or implied. It's in CVS.
Reading: wfQuery( $sql, DB_READ, $fname );
Writing: wfQuery( $sql, DB_WRITE, $fname );
Currently, wfQuery doesn't do anything with this information, but the idea is to have a list of database servers in LocalSettings.php. Using 0 for the extra parameter would connect to the first server on the list, and send the query. DB_WRITE (-2) would use whatever the current master is, presumably this can be changed if the master goes down. DB_READ (-1) would invoke some sort of load balancer to decide where to send the query.
I haven't really looked into the synchronisation issues yet, but I have a feeling it won't be a big problem.
-- Tim Starling.
Just a quick note: we don't have the disk space on larousse at present to mirror the whole database.
-- brion vibber (brion @ pobox.com)
wikitech-l@lists.wikimedia.org