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 047D9D123 for ; Thu, 18 Oct 2012 17:34:52 +0000 (UTC) Received: (qmail 75710 invoked by uid 500); 18 Oct 2012 17:34:49 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 75374 invoked by uid 500); 18 Oct 2012 17:34:45 -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 75345 invoked by uid 99); 18 Oct 2012 17:34:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Oct 2012 17:34:44 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of markusklems@gmail.com designates 209.85.220.172 as permitted sender) Received: from [209.85.220.172] (HELO mail-vc0-f172.google.com) (209.85.220.172) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Oct 2012 17:34:37 +0000 Received: by mail-vc0-f172.google.com with SMTP id fl11so10810538vcb.31 for ; Thu, 18 Oct 2012 10:34:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=ZdA6U1GZeSk3qfpGaMpQw4kRPfw/2D0bSFs+f2oml4I=; b=LzUl/lCl3pRcqg9kgG+lGGVJWXJXRpYoOcIQ3SlYrdjs1erMY9h573xC8UnrHLq98Z 5nn4LNT72MrT0Rm1DRvkx53vfRZlN0KiVFwumcNzHAIbuK/q77UTzJBpa/60Hnzsp8NA Retq+rDVs69xD4wPnn/JHREBxtYW6KIyfGho1MtIJqYBb9MJM02X/CRfKypgLonjeRPV oZAcoxYOKL5fkFOS5HI+hrpp6U27UUglJy9LEQ2zZajciK60asMJk9cCHx7CEMSKtig2 Yx2PJJq/Jqhl0IivJuDDChcmXj8GIDO+AKclfn7KIdl2zmkMLEcjSL7wWLYRds7aBWeG B5FA== Received: by 10.52.90.147 with SMTP id bw19mr13483822vdb.17.1350581656609; Thu, 18 Oct 2012 10:34:16 -0700 (PDT) MIME-Version: 1.0 Received: by 10.58.15.4 with HTTP; Thu, 18 Oct 2012 10:33:56 -0700 (PDT) From: Markus Klems Date: Thu, 18 Oct 2012 19:33:56 +0200 Message-ID: Subject: What does ReadRepair exactly do? To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary=20cf307f3bd8e1e3c404cc58cbcc X-Virus-Checked: Checked by ClamAV on apache.org --20cf307f3bd8e1e3c404cc58cbcc Content-Type: text/plain; charset=UTF-8 Hi guys, I am looking through the Cassandra source code in the github trunk to better understand how Cassandra's fault-tolerance mechanisms work. Most things make sense. I am also aware of the wiki and DataStax documentation. However, I do not understand what read repair does in detail. The method RowRepairResolver.resolveSuperset(Iterable versions) seems to do the trick of merging conflicting versions of column family replicas and builds the set of columns that need to be "repaired". From looking at the source code, I do not understand how this set is built and I do not understand how the reconciliation is executed. ReadRepair does not seem to trigger a Column.reconcile() to reconcile conflicting column versions on different servers. Does it? If this is not what read repair does, then: What kind of inconsistencies are resolved by read repair? And: How are the inconsistencies resolved? Could someone give me a hint? Thanks so much, -Markus --20cf307f3bd8e1e3c404cc58cbcc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi guys,

I am looking through the Cassandra source code = in the github trunk to better understand how Cassandra's fault-toleranc= e mechanisms work. Most things make sense. I am also aware of the wiki and = DataStax documentation. However, I do not understand what read repair does = in detail.=C2=A0The method RowRepairResolver.resolveSuperset(Iterable<Co= lumnFamily> versions) seems to do the trick of merging conflicting versi= ons of column family replicas and builds the set of columns that need to be= "repaired". From looking at the source code, I do not understand= how this set is built and I do not understand how the reconciliation is ex= ecuted.=C2=A0ReadRepair does not seem to trigger a Column.reconcile() to re= concile conflicting column versions on different servers. Does it?

If this is not what read repair does, then: What kind o= f inconsistencies are resolved by read repair?=C2=A0And: How are the incons= istencies resolved?

Could someone give me a hint?<= /div>

Thanks so much,

-Markus
--20cf307f3bd8e1e3c404cc58cbcc--