Personally, I'd avoid MySQL like the plague - You say that data can be easily corrupted using MySQL replication, but in reality MySQL itself isn't great with your data - it doesn't offer full ACID compliance for starters.
For scenarios such as yours, I would personally use Postgresql
. If replication is required, then I'd use the streaming replication that appeared in Postgres
Additionally, I'd also use a connection pooler - pgpool II and pgbouncer are the main ones.
When it comes to System Architecture, there are many options and it completely depends on your budget, experience, existing kit, etc. My former colleague Dan put together a presentation for a previous Moodle Moot entitled 'Moodle for 1000 schools' which details some of the issues we hit and the ways we addressed them. It's available on slideshare at http://www.slideshare.net/poltawski/moodle-moot-uk-07-presentation
. At the time we were using multi-master MySQL replication, but moved away from that as soon as possible. I also gave a presentation at MaharaUK 2011 on this subject but for Mahara
. It should still be relevant though - http://www.slideshare.net/andrewnicols/mahara-uk-2011-building-mahara-for-multiple-institutions-8410961
As a side note, it's generally better and more appreciated if you start a new thread rather than start a tangent on a very old thread (3.5 years since the last post).