> The RDBMS space has been addressing how to do this with distributed systems for quite some time as well
So how do you do what they did with MySQL. Can you build an always available multi-master cluster that is available, partition tolerant and eventually consistent?
MySQL Cluster, Percona XtraDB Cluster, Clustrix, Continuent Tungsten Replicator, vitess, and a number of other products are available in the MySQL ecosystem designed around these types of problems.
While these are all great products and can provide highly available layers on top of MySQL, only MySQL cluster satisfies rtdsc's requirements, and I have my doubts about its behavior around clocks. In general, the MySQL HA space prefers CP to AP.
MySQL Cluster is CP within a cluster. A circularly replicated pair of MySQL Clusters can be considered AP, with limited support for conflict resolution (if I understand correctly, it gets ugly when clocks come into play). http://messagepassing.blogspot.com/2012/03/cap-theorem-and-m...
It seems there is some load balancing / cluster node membership layer on top of MySQL which is used for storage.
But I guess, if they are integrated into a single packaged product, then it doesn't matter much (well SQL syntax would have MySQL peculiarities in it).
But if you look at the number of lines on top of MySQL (since MySQL was argued to be the understood and established by the grandparent poster) that all these solutions add, would be greater than 1000.
"So how do you do what they did with MySQL. Can you build an always available multi-master cluster that is available, partition tolerant and eventually consistent?"
Obviously in the article they picked Riak. So yes Riak and other Dynamo-type database have those properties. I asked if the properties of Riak+custom eventual consistency code can be achieved with MySQL (as one of the above comments was asking people to maybe not jump to all these fancy and exotic solution when MySQL is available)
Aha. I interpreted "what they did with MySQL" as "What the MySQL team did by writing a successful database", but you meant "what the Bump team did with their application, were it to be on top of MySQL." Got it.
So how do you do what they did with MySQL. Can you build an always available multi-master cluster that is available, partition tolerant and eventually consistent?