Return-Path: X-Original-To: apmail-cassandra-dev-archive@www.apache.org Delivered-To: apmail-cassandra-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B6517D3A0 for ; Wed, 26 Sep 2012 13:23:45 +0000 (UTC) Received: (qmail 6820 invoked by uid 500); 26 Sep 2012 13:23:44 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 6573 invoked by uid 500); 26 Sep 2012 13:23:44 -0000 Mailing-List: contact dev-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list dev@cassandra.apache.org Received: (qmail 6562 invoked by uid 99); 26 Sep 2012 13:23:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 13:23:44 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of driftx@gmail.com designates 209.85.212.170 as permitted sender) Received: from [209.85.212.170] (HELO mail-wi0-f170.google.com) (209.85.212.170) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 13:23:39 +0000 Received: by wibhm2 with SMTP id hm2so2672213wib.1 for ; Wed, 26 Sep 2012 06:23:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=oJpkG/dExJpIF1kL6nYb/31tdE1+b5Vch+BidXATFCk=; b=mB7BvKPgRovwBat5xiMRg9V4MYPmfUJrwH7akD5E5bFS7ZY2Dqe4jEH/uyfzZFNeNb iWhcuj8GyRLk1Zws1RR9C9ObH+c0NG4szqjumc4boST2VDhHIF4yPkRKSRtMsRvqWzes ECYa6tVnB3Rxz26snpSGrej4+HoTXdD9LJ4cQCNpVHBHy9uMdCAk8QcJa37SnBqM5MDg vF9KwyincBtLyJkVkX+uI2aWvDQiZWGvGUcNl4j5N86svkC8Q7L35d51waeFVwj16lIq 0MI9Ggq4jCB10MFGJNZX3lrD+w+qB5EPiwciz3rij0eXmIDtu2c6wNagSvHIsjoWr0zD dFvg== Received: by 10.180.14.8 with SMTP id l8mr1521699wic.6.1348665797703; Wed, 26 Sep 2012 06:23:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.199.10 with HTTP; Wed, 26 Sep 2012 06:22:57 -0700 (PDT) In-Reply-To: References: From: Brandon Williams Date: Wed, 26 Sep 2012 08:22:57 -0500 Message-ID: Subject: Re: Pushing Cassandra 1.2 back a month to November? To: dev@cassandra.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org +1 The vnode troubleshooting process has been rough, so I'm all for more testing there. On Tue, Sep 25, 2012 at 12:16 PM, Jonathan Ellis wrote: > We are more or less on track for the promised late October 1.2 release > [1] but I'm starting to think we should expand the scope of 1.2 a bit > to get cql3 and the corresponding binary protocol truly "right." > > Specifically, > 1) We'd like to move the consistency level setting from the CQL > language to the protocol level. > 2) The binary protocol only really has a Java implementation so far. > Having the time to flesh out the Python implementation would be a good > sanity check before we commit to protocol stability. > > Additionally, > 3) vnodes is a big change that could use more time to test. I'd like > to avoid a repeat of the schema change mess from 1.1, where we did a > substantial rewrite that took six minor releases to get all the bugs > out of. > > Gory details on the CQL situation: > > Currently, in CQL3, you set the consistency level of an operation in > the language, eg 'SELECT * FROM foo USING CONSISTENCY QUORUM'. It now > looks like this was a mistake, and that consistency should be set at > the protocol level, i.e. as a separate parameter along with the query. > > The reasoning is that the CL applies to the guarantee provided by the > operation being successful, not to the query itself. Specifically, > having the CL being part of the language means that CL is opaque to > low level client libraries without themselves parsing the CQL, which > we want to avoid. Thus, > > - Those libraries can't implement automatic retries policy, where a query > would be retried with a smaller CL. (I'm aware that this is often a > Bad Idea, but it does have legitimate uses and not having that available > is seen as a regression from the Thrift api.) > - We had to introduce CASSANDRA-4448 to allow the client to configure some > form of default CL since the library can't handle that anymore, which is > hackish. > - Executing prepared statements with different CL requires preparing > multiple statements. > - CL only makes sense for BATCH operations as a whole, not the > sub-statements within the batch. Currently CQL3 "fixes" that by > validating the given CLs match, but it would be much more clear > if the CL was on the protocol side. > > Moving the CL to the protocol level solves all of that but the problem > is, if we move the CL from the language to the protocol after 1.2, > that's a breaking change of CQL3, so we're talking CQL4. Bad idea. > > [1] although later-than-planned freeze is a warning sign > > -- > Jonathan Ellis > Project Chair, Apache Cassandra > co-founder of DataStax, the source for professional Cassandra support > http://www.datastax.com