Posts

Showing posts with the label cap theorem

The CAP Theorem is Wrong! (Not really)

Image
I've been having this long argument w/ a colleague about the merits of SQL vs NoSQL, which I'm anot going to get into here, but recently it devolved into claims along the lines of "The CAP Theorem is Wrong" (no, thats not my quote). It took me a while to figure out his point, but it turned out to be a fairly common misunderstanding, viz., If you have predictable Network Partitions, you can guarantee C, A, and P . i.e., if you know, beforehand, exactly how your network is going to get blowed up, then you can protect against it, and have Consistency and Availability and Partition Tolerance .  This is absolutely true! Huh? Say what? Well, yeah.  Note the weasel phrase " if you know, beforehand ".  This is not unlike saying, "If you know, beforehand, what the winning lottery numbers are going to be, you can win the lottery every time ". The point about Partition Tolerance is that it needs to handle arbitrary / random scenarios.  ...

Xeround - The (Potentially) Unusable Database?

Image
Xeround is "an elastic, always-on database-as-a-service for your MySQL applications" (from the site). Which sounds great, 'cept from the Q&A when they say Despite the protective mechanisms that we’ve put into our technology (previously-mentioned quorum-based algorithms included), it is potentially possible for a more-than-trivial-but-less-than-total network split to bring the system to an unintelligible state. To safeguard against database schizophrenia because of   split-brain  (both to conserve consistency as well as avoid later conflict resolutions), Xeround’s database suspends itself when it experiences a network partitioning event that it can’t overcome by itself. In such cases, an external arbitrator (e.g., our service operators) instructs the system to continue operating by decided which of its parts is deemed active. Which I'd translate to "If there is a network split, the DB will shut down till the sys-admins fix stuff " Which is absolute...