2 | 2 | * Do [http://onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html circular replication], i.e., A replicates to B, but B also replicates to A, even though you're not supposed to. This requires some hackery with auto_increment columns, and possibly other things, and given that we don't control users' code, I don't know how I feel about the reliability of this. |
3 | 3 | * Set up [http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html MySQL Cluster]. It uses its own database type (NDB) and [http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-overview-requirements.html by default requires all the memory ever] to store the entire database in memory, although apparently you can [http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data.html move non-indexed columns to disk] in 5.1. I am highly unsure whether that helps us enough, and taking up memory would be a violation of the principle that unused sites cost us only a couple megabytes on disk. But, if it works, [http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-replication-multi-master.html multimaster replication between clusters] is definitely supported. So we can stick two SQL servers in W20 and two in W91, set each pair up as a cluster, and replicate between them. |