I've been researching master/slave systems but I can't find anything definitive on the benefits and drawbacks of using them. Maybe some people here can enlighten me?
The short version is it allows read scalability... since you can have (for example) 10 slave DB servers which can all handle reads. You are still bottlenecked with writes though, and *normally* you still have a single point of failure with the master server. You can build a system for failover, but it's not inherent normally. If you want both read *and* write scalability (as well as automatic redundancy), you would need a setup where any slave could also handle writes. We use MySQL Cluster for this site, which allows us to scale the database out pretty linearly.