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 0754718B61 for ; Wed, 8 Jul 2015 22:06:53 +0000 (UTC) Received: (qmail 77852 invoked by uid 500); 8 Jul 2015 22:06:49 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 77809 invoked by uid 500); 8 Jul 2015 22:06:49 -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 77799 invoked by uid 99); 8 Jul 2015 22:06:49 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jul 2015 22:06:49 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id F1F561A6B50 for ; Wed, 8 Jul 2015 22:06:48 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.979 X-Spam-Level: ** X-Spam-Status: No, score=2.979 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id aZcdyued6-_0 for ; Wed, 8 Jul 2015 22:06:48 +0000 (UTC) Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com [209.85.217.180]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 4F42220B6F for ; Wed, 8 Jul 2015 22:06:47 +0000 (UTC) Received: by lbbpo10 with SMTP id po10so64512357lbb.3 for ; Wed, 08 Jul 2015 15:06:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=53dSflO3OrE3RRSrxjE5T9iHjXbXaGo9/QEnvX0orx0=; b=BmhyDPSNvG90jp+2PB2+7KKX+od2TZHtA4NG9OL+dfYYtgMdxX3+5zXsyreq1/KXhL +IgCKeKcWTOy8LnyCifq2TGmJsx+lKzTcbGkKQm1GVX6pbgzjRg6c5+Jj2Rf/1jx/DL0 +oV5ChmYIYYVnCvvOUQIbqhgVE+Cu94NN43uLV+IJ/Pk7fHx/uRCBqlPOomq4M4ZbckP v8FH0axSxK739MlaJjtZQ1TB8HfCaAVnHMX95m/QOJqD9r2R3cE0xO+mjwmLtjss2KhL oxklV/c72tw5kZSIdsVXnMBGzbjmjQ3RpbEPGzqzndaiXrx0Y8vkwu+b6T4L/461WXOL Id0w== X-Gm-Message-State: ALoCoQno4NOpvRXTFibM0kjV1AvlBXOQv9/FTREkZ1lx46g1RCch8jFEVhT3wD1nhfl7UiAySq73 MIME-Version: 1.0 X-Received: by 10.112.25.69 with SMTP id a5mr11516740lbg.16.1436393206803; Wed, 08 Jul 2015 15:06:46 -0700 (PDT) Received: by 10.114.64.71 with HTTP; Wed, 8 Jul 2015 15:06:46 -0700 (PDT) In-Reply-To: <581603265.1744021.1436389673407.JavaMail.yahoo@mail.yahoo.com> References: <581603265.1744021.1436389673407.JavaMail.yahoo@mail.yahoo.com> Date: Wed, 8 Jul 2015 15:06:46 -0700 Message-ID: Subject: Re: Read Repair From: Robert Coli To: "user@cassandra.apache.org" , Saladi Naidu Content-Type: multipart/alternative; boundary=001a11c3f5bed98828051a645a1a --001a11c3f5bed98828051a645a1a Content-Type: text/plain; charset=UTF-8 On Wed, Jul 8, 2015 at 2:07 PM, Saladi Naidu wrote: > Suppose I have a row of existing data with set of values for attributes I > call this State1, and issue an update to some columns with Quorum > consistency. If the write is succeeded in one node, Node1 and and failed > on remaining nodes. As there is no Rollback, Node1 row attributes will > remain new state, State2 and rest of the nodes row will have old state, > State1. If I do a Read and Cassandra detects state difference, it will > issue a Read repair which will result in new state, State2 being propagated > to other nodes. But from a application point of view the update never > happened because it received an exception. > Yes, that's correct. This is the property I call "coalescing to an un-acknowledged-write," which is extremely unusual to find in non-distributed, non-log-structured databases. How to handle this kind of a situation? > Design your application in such a way that operations are idempotent and therefore retryable on failure. =Rob --001a11c3f5bed98828051a645a1a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On W= ed, Jul 8, 2015 at 2:07 PM, Saladi Naidu <naidusp2002@yahoo.com>= ; wrote:
Su= ppose I have a row of existing data with set of values for attributes I cal= l this State1, and issue an update to some columns with Quorum consistency.= =C2=A0 If the write is succeeded in one node, Node1 and and failed on=C2=A0= remaining=C2=A0nodes. As there is no Rollback, Node1 row attributes will re= main new state, State2 and rest of the nodes row will have old state, State= 1. If I do a Read and Cassandra detects state difference, it will issue a R= ead repair which will result in new state, State2 being propagated to other= nodes. But from a application point of view the update never happened beca= use it received an exception.
Yes, that's correct. This is the property I call "coa= lescing to an un-acknowledged-write," which is extremely unusual to fi= nd in non-distributed, non-log-structured databases.

How to handle this kind= of a situation?

D= esign your application in such a way that operations are idempotent and the= refore retryable on failure.

=3DRob=C2=A0
--001a11c3f5bed98828051a645a1a--