Hacker Newsnew | comments | ask | jobs | submitlogin
cbsmith 701 days ago | link | parent

The RDBMS space has been addressing how to do this with distributed systems for quite some time as well (a couple of decades at least), and at least the more sophisticated systems tend to support a fairly broad set of approaches to addressing this problem (and means of expressing those choices quite succinctly).


rdtsc 701 days ago | link

> 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?

-----

AaronBBrown 701 days ago | link

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.

-----

aphyr 701 days ago | link

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...

Percona is CP. They claim to be CA by sacrificing partition tolerance: in other words, the system is not available when partitioned. http://www.percona.com/doc/percona-xtradb-cluster/intro.html

Clustrix is definitely CP, not AP. If you lose quorum, everything stops. They do an excellent job of being a distributed CP system, though, from what I can tell. http://sergei.clustrix.com/2011/02/mongodb-vs-clustrix-compa...

Continuent Tungsten Replicator has a master-master mode, which is CP. http://availabilitydigest.com/public_articles/0405/continuen...

-----

rdtsc 701 days ago | link

Thank you, Aaaron. That's what I was looking for.

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.

-----

aphyr 701 days ago | link

Yes: SimpleDB, HBase, Cassandra, Riak, Voldemort.

-----

rdtsc 701 days ago | link

> Yes: SimpleDB, HBase, Cassandra, Riak, Voldemort.

Flagged your post since you obviously didn't even bother reading 2 sentences before replying.

-----

aphyr 701 days ago | link

Sorry, I must have misunderstood. You wrote:

Can you build an always available multi-master cluster that is available, partition tolerant and eventually consistent?

These are exactly the properties of Dynamo. Could you elaborate more on what you were looking for?

-----

rdtsc 701 days ago | link

I wrote:

"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)

-----

aphyr 701 days ago | link

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.

-----




Lists | RSS | Bookmarklet | Guidelines | FAQ | DMCA | News News | Feature Requests | Bugs | Y Combinator | Apply | Library

Search: