So this conversation hasn't happened yet, but it really really needs to. We have this nice and shiny new slave server support in Drupal 7, but we are not using it. That means we need to go through and flag which queries are "Slave safe", that is, are able to use a slave server if one is available without breaking stuff.
But wait! There's one trick involved. We also have a nifty feature where it's possible to temporarily disable a slave server for a single user for a few minutes. That is, after that user writes to the database (say, adding a new node) we can disable the slave server just for them, meaning that they will always get the most up to date data. Other users will get any changes as soon as the slave server catches up, which could be anywhere from a second to 5 minutes depending on the setup.
Of course, that then eliminates the number one case when you'd want to make queries non-slave-using, because they're dependent on up to the second data. So do we ever need to not use a slave server?
In earlier discussion I've gotten two possible answers here:
1) Keep the master server the default, and go through and flag slave-safe queries in core. We'd also need to publish guidelines for when to consider a query slave safe. Note that if most queries really are slave safe, then this could be a LOT of queries that get flagged for slave servers, a process that is, admittedly, not the prettiest code. The odds of contrib authors ever using slave servers is also then extremely low, since 99.99% of developers don't have a slave server on hand.
2) Make slave servers the default for select queries and for db_query(). Then we only need to mark those queries that STILL should not use a slave server, by some metric. Note that a potential problem here is that it is still possible, although not recommended, to pass INSERT, UPDATE, and DELETE queries through db_query(), as well as DDL queries. Those of course would all cause all sorts of ugly if run against a slave server. Also, queries that can't run against slave servers are going to be really really really hard for most contrib authors to figure out, since 99.99% of developers don't have a slave server on hand.
Either way, we need some guideline to determine what queries are slave-safe that we can publish in the database handbook section.
Anyone who has actually run a high-end database setup, please please please we want your input here. (If you haven't you can comment too, but I'm really looking for feedback from people with experience here, primarily.)