Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C30314EC8 for ; Fri, 17 Jun 2011 03:00:46 +0000 (UTC) Received: (qmail 65690 invoked by uid 500); 17 Jun 2011 03:00:44 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 65625 invoked by uid 500); 17 Jun 2011 03:00:44 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 65617 invoked by uid 99); 17 Jun 2011 03:00:43 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jun 2011 03:00:43 +0000 X-ASF-Spam-Status: No, hits=0.7 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [204.13.248.66] (HELO mho-01-ewr.mailhop.org) (204.13.248.66) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jun 2011 03:00:36 +0000 Received: from 67-6-248-180.hlrn.qwest.net ([67.6.248.180] helo=[192.168.0.2]) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.72) (envelope-from ) id 1QXPI6-000Eh6-NN for user@cassandra.apache.org; Fri, 17 Jun 2011 03:00:14 +0000 X-Mail-Handler: MailHop Outbound by DynDNS X-Originating-IP: 67.6.248.180 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/mailhop/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX18SByFWGqnSRJHRWSZsyWchWq/mbvvLvnU= Message-ID: <4DFAC336.3060207@dude.podzone.net> Date: Thu, 16 Jun 2011 21:00:06 -0600 From: AJ User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110414 Lightning/1.0b2 Thunderbird/3.1.10 MIME-Version: 1.0 To: user@cassandra.apache.org Subject: Re: Propose new ConsistencyLevel.ALL_AVAIL for reads References: <4DFA1EBE.3030202@dude.podzone.net> <4dfa3659.09a32a0a.3123.658a@mx.google.com> <4DFA6215.5080103@dude.podzone.net> <4DFA71C6.9050504@dude.podzone.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 6/16/2011 7:56 PM, Dan Hendry wrote: > How would your solution deal with complete network partitions? A node > being 'down' does not actually mean it is dead, just that it is > unreachable from whatever is making the decision to mark it 'down'. > > Following from Ryan's example, consider nodes A, B, and C but within a > fully partitioned network: all of the nodes are up but each thinks all > the others are down. Your ALL_AVAILABLE consistency level would boil > down to consistency level ONE for clients connecting to any of the > nodes. If I connect to A, it thinks it is the last one standing and > translates 'ALL_AVALIABLE' into 'ONE'. Based on your logic, two > clients connecting to two different nodes could each modify a value > then read it, thinking that its 100% consistent yet it is > actually *completely* inconsistent with the value on other node(s). Help me out here. I'm trying to visualize a situation where the clients can access all the C* nodes but the nodes can't access each other. I don't see how that can happen on a regular ethernet subnet in one data center. Well, I"m sure there is a case that you can point out. Ok, I will concede that this is an issue for some network configurations. > I suggest you review the principles of the infamous CAP theorem. The > consistency levels as the stand now, allow for an explicit trade off > between 'available and partition tolerant' (ONE read/write) OR > 'consistent and available' (QUORUM read/write). Your solution achieves > only availability and can guarantee neither consistency nor partition > tolerance. It looks like CAP may triumph again. Thanks for the exercise Dan and Ryan.