Archive for the 'NoSQL' Category

More on CAP

This blog post and the comments have a good discussion on the CAP Theorem that captures the main gist of my issues with many discussions of CAP, although I may still have some additional comments, particularly about the practical implications for real distributed systems and why the “CA/CP” dichotomy seems a bit misguided.

Advertisements

Twitter Conversation about CAP

I am capturing a brief Twitter conversation about the CAP Theorem here. I’ll try to follow up with a longer post about the misconceptions that seem to float around about the CAP Theorem.

@chad_walters:
This diagram is interesting but somehow strikes me as a bit misguided: http://bit.ly/dbZFxU #NoSQL
3:25 PM Mar 14th via web

@chad_walters:
I agree that the systems listed under “AP” lack strong consistency. But the division between the “CA” and “CP” systems seems wrong #NoSQL
3:27 PM Mar 14th via web

@chad_walters:
Those systems have individually varying points where availability breaks down under network partitioning (and other kinds of faults). #NoSQL
3:31 PM Mar 14th via web

@chad_walters:
And my impression is that the NoSQL (“CP”) systems are generally more fault tolerant than the RDBMS (“CA”) systems. #NoSQL
3:32 PM Mar 14th via web

@chad_walters:
But the diagram creates the mistaken impression that RDBMS are “more available” than NoSQL, which is simply not the case AFIACT #NoSQL
3:34 PM Mar 14th via web

@clehene:
@chad_walters Just a few letters mixed up a bit. BigTable and HBase were CA, not CP last time I checked.
3:29 PM Mar 14th via TweetDeck in reply to chad_walters

@chad_walters:
@clehene My point is that I don’t think “CA” and “CP” are sensible classifications, at least as I read the formal CAP proof. #NoSQL
3:38 PM Mar 14th via web in reply to clehene

@LusciousPear:
@chad_walters @clehene Every time I say BigTable is CP or CA, I’m told I’m wrong and the other is the truth. #headdesk
3:40 PM Mar 14th via Echofon

@clehene:
@LusciousPear @chad_walters I guess people like taxonomies. It’s just hard to classify things when labels are rather philosophical. #nosql
3:41 PM Mar 14th via TweetDeck in reply to LusciousPear

@chad_walters:
@LusciousPear Right. I don’t think it is the right distinction. Unlike “fast/cheap/good”, CAP does not mean “pick two”. #NoSQL
3:43 PM Mar 14th via web in reply to LusciousPear

@chad_walters:
@clehene The CAP theorem has a formal proof: http://lpd.epfl.ch/sgilbert/pubs/BrewersConjecture-SigAct.pdf /cc @LusciousPear #NoSQL3:48 PM Mar 14th via web in reply to clehene

@LusciousPear:
@chad_walters @clehene Right. CAP is more like knobs to turn, not blocks to build from.
3:48 PM Mar 14th via Echofon in reply to chad_walters

@chad_walters:
@LusciousPear Well I see strong consistency as the main choice point. Beyond that you have varying degrees of fault tolerance. /cc @clehene
3:52 PM Mar 14th via web in reply to LusciousPear

@chad_walters:
@LusciousPear CAP says that weakly consistent systems can maintain A (under the formal definition…) in the face of P /cc @clehene 3:54 PM Mar 14th via web in reply to LusciousPear

@clehene:
@chad_walters @LusciousPear I will soon come out with some reflections about that, just need to polish things a bit 🙂
3:55 PM Mar 14th via TweetDeck

@chad_walters:
@LusciousPear But is the formal definition of A really the most interesting aspect of fault tolerance? I’m not convinced. /cc @clehene
3:56 PM Mar 14th via web in reply to LusciousPear

@chad_walters:
@LusciousPear I’m much more interested in practical fault tolerance than in theoretical fault tolerance /cc @clehene
4:03 PM Mar 14th via web

@LusciousPear:
@chad_walters I’m 100% with you. I think certain contexts of A are overrated, and I’d rather have something practical than “elegant”
4:11 PM Mar 14th via Seesmic in reply to chad_walters