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 E37CFD31C for ; Wed, 26 Sep 2012 13:09:34 +0000 (UTC) Received: (qmail 65856 invoked by uid 500); 26 Sep 2012 13:09:34 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 65111 invoked by uid 500); 26 Sep 2012 13:09:29 -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 65060 invoked by uid 99); 26 Sep 2012 13:09:27 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 13:09:27 +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 (nike.apache.org: domain of povel.y@gmail.com designates 74.125.82.44 as permitted sender) Received: from [74.125.82.44] (HELO mail-wg0-f44.google.com) (74.125.82.44) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 13:09:21 +0000 Received: by wgbdr13 with SMTP id dr13so360335wgb.25 for ; Wed, 26 Sep 2012 06:09:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=references:from:in-reply-to:mime-version:date:message-id:subject:to :content-type; bh=vtPazb45GKE0FjwSJDuO7pc+lBh4mT4qfq/zPXtJsqE=; b=il4XjP58T5t8TBZLZ2hqfY2r/j58rAJWAXbsCUTRos/EG8QkFPhavzmTyEminRCpMk dfbPkYAfgANIKHNfL2oedivwZXMCd3k3A5dZPKBwtUNLC6lmHRJvh4hib/cTv3eTpvDR G+WXLoQ2chHf+Ms4WsICkHBNlZT+5pqELm+zJtJmk1lB+zoYd8D0SmRriyd3GklxjfRV nkY/90s90YzVKAtjjeYC9diw49XZT/1Cyz6WoFpnxaIzLZXKBiFTsrJXRN4HJamr5ut7 XQjVyeCFpupr2lAN2b8PeB7uJH3gf3b/jPoq9HDgaOedulqxU8qnI8TxrLNwHkVNdIQR p8zQ== Received: by 10.180.97.106 with SMTP id dz10mr1322214wib.21.1348664941154; Wed, 26 Sep 2012 06:09:01 -0700 (PDT) References: From: Pavel Yaskevich In-Reply-To: Mime-Version: 1.0 (1.0) Date: Wed, 26 Sep 2012 16:08:40 +0300 Message-ID: <3714302396387518439@unknownmsgid> Subject: Re: Pushing Cassandra 1.2 back a month to November? To: "dev@cassandra.apache.org" Content-Type: text/plain; charset=ISO-8859-1 +1 26 sep 2012 kl. 15:56 skrev Sylvain Lebresne : > +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