Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 1D867200C32 for ; Thu, 9 Mar 2017 18:04:43 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 15B51160B75; Thu, 9 Mar 2017 17:04:43 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5D0B8160B5F for ; Thu, 9 Mar 2017 18:04:42 +0100 (CET) Received: (qmail 92896 invoked by uid 500); 9 Mar 2017 17:04:41 -0000 Mailing-List: contact commits-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 commits@cassandra.apache.org Received: (qmail 92884 invoked by uid 99); 9 Mar 2017 17:04:41 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Mar 2017 17:04:41 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 09056186142 for ; Thu, 9 Mar 2017 17:04:41 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.651 X-Spam-Level: X-Spam-Status: No, score=0.651 tagged_above=-999 required=6.31 tests=[RP_MATCHES_RCVD=-0.001, SPF_NEUTRAL=0.652] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id yLBYMokVfwEm for ; Thu, 9 Mar 2017 17:04:39 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 1B13E5FB59 for ; Thu, 9 Mar 2017 17:04:39 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 47583E086A for ; Thu, 9 Mar 2017 17:04:38 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id F0B2B243A8 for ; Thu, 9 Mar 2017 17:04:37 +0000 (UTC) Date: Thu, 9 Mar 2017 17:04:37 +0000 (UTC) From: "Ryan Svihla (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-13315) Consistency is confusing for new users MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 09 Mar 2017 17:04:43 -0000 [ https://issues.apache.org/jira/browse/CASSANDRA-13315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15903404#comment-15903404 ] Ryan Svihla commented on CASSANDRA-13315: ----------------------------------------- those are better names +1 on that. Dual CL yeah I mistated that and we're on the same page with intent, as I've stated it's hard to even talk about it in text without getting bewildered. Just as long as we have only a single bucket to set and we require a condition for SERIAL I'm fine. > Consistency is confusing for new users > -------------------------------------- > > Key: CASSANDRA-13315 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13315 > Project: Cassandra > Issue Type: Improvement > Reporter: Ryan Svihla > > New users really struggle with consistency level and fall into a large number of tarpits trying to decide on the right one. > 1. There are a LOT of consistency levels and it's up to the end user to reason about what combinations are valid and what is really what they intend it to be. Is there any reason why write at ALL and read at CL TWO is better than read at CL ONE? > 2. They require a good understanding of failure modes to do well. It's not uncommon for people to use CL one and wonder why their data is missing. > 3. The serial consistency level "bucket" is confusing to even write about and easy to get wrong even for experienced users. > So I propose the following steps: > 1. Remove the "serial consistency" level of consistency levels and just have all consistency levels in one bucket at the protocol level. > 2. To enable #1 just reject writes or updates done without a condition when SERIAL/LOCAL_SERIAL is specified. > 3. add 3 new consistency levels pointing to existing ones but that infer intent much more cleanly: > * EVENTUALLY_CONSISTENT = LOCAL_ONE reads and writes > * HIGHLY_CONSISTENT = LOCAL_QUORUM reads and writes > * TRANSACTIONALLY_CONSISTENT = LOCAL_SERIAL reads and writes > for global levels of this I propose keeping the old ones around, they're rarely used in the field except by accident or particularly opinionated and advanced users. > Drivers should put the new consistency levels in a new package and docs should be updated to suggest their use. Likewise setting default CL should only provide those three settings and applying it for reads and writes at the same time. > CQLSH I'm gonna suggest should default to HIGHLY_CONSISTENT. New sysadmins get surprised by this frequently and I can think of a couple very major escalations because people were confused what the default behavior was. > The benefit to all this change is we shrink the surface area that one has to understand when learning Cassandra greatly, and we have far less bad initial experiences and surprises. New users will more likely be able to wrap their brains around those 3 ideas more readily then they can "what happens when I have RF2, QUROUM writes and ONE reads". Advanced users get access to all the way still, while new users don't have to learn all the ins and outs of distributed theory just to write data and be able to read it back. -- This message was sent by Atlassian JIRA (v6.3.15#6346)