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 53E74D2A3 for ; Wed, 26 Sep 2012 12:56:10 +0000 (UTC) Received: (qmail 24745 invoked by uid 500); 26 Sep 2012 12:56:09 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 24376 invoked by uid 500); 26 Sep 2012 12:56:03 -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 24327 invoked by uid 99); 26 Sep 2012 12:56:01 -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 12:56:01 +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 sylvain@datastax.com designates 209.85.223.172 as permitted sender) Received: from [209.85.223.172] (HELO mail-ie0-f172.google.com) (209.85.223.172) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 12:55:56 +0000 Received: by iec9 with SMTP id 9so1497565iec.31 for ; Wed, 26 Sep 2012 05:55:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:x-gm-message-state; bh=CTjYMhEWFJCPGZ32mGL8LmafSsTxVzxTJamLGEu9iqE=; b=dRJULqKkc+EaRWbNsTlP9BwkQW0wpO9oDd9yhjO5vv8dRUtqVoV5Kge/6zQqi3/aba rfQTZ8VWgBjVQ7JhSVwMiPs4qFZBq2kNlDsiF1Pj8h30ZAS873gv6v8pavti0Y1TCpUD FAcM6oQfiI5/3LtYMDiBW++/Xiuti2cpoSvDn2FYtTbEL5dVfnAjeF11osbpsvrCTdEb d6V5FcogiOVIBVFk/MqrrJ/3AzzoSNsWfH/asx81Cb1onuxJXY6kojjK3x4r4zTJI7Sv vjX8pvFxGJY3WkHDGm+9cJKn5CKapxGUnu0QQA9tsOXb0l7H2ER3yzISLYUWYK573jCu Y/0g== MIME-Version: 1.0 Received: by 10.50.180.225 with SMTP id dr1mr401967igc.6.1348664136292; Wed, 26 Sep 2012 05:55:36 -0700 (PDT) Received: by 10.50.22.104 with HTTP; Wed, 26 Sep 2012 05:55:36 -0700 (PDT) In-Reply-To: References: Date: Wed, 26 Sep 2012 14:55:36 +0200 Message-ID: Subject: Re: Pushing Cassandra 1.2 back a month to November? From: Sylvain Lebresne To: dev@cassandra.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Gm-Message-State: ALoCoQnkXNRRKcVH7/s8itepIH5aIY+kHzvjec20ViIIl0megO/ksmUC89tK5fe0f/CxbwHwHWPo X-Virus-Checked: Checked by ClamAV on apache.org +1 On Tue, Sep 25, 2012 at 7: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