Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 20336 invoked from network); 21 Oct 2010 21:41:33 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 21 Oct 2010 21:41:33 -0000 Received: (qmail 9956 invoked by uid 500); 21 Oct 2010 21:41:31 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 9937 invoked by uid 500); 21 Oct 2010 21:41:31 -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 9929 invoked by uid 99); 21 Oct 2010 21:41:31 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 21 Oct 2010 21:41:31 +0000 X-ASF-Spam-Status: No, hits=0.7 required=10.0 tests=RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.161.172] (HELO mail-gx0-f172.google.com) (209.85.161.172) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 21 Oct 2010 21:41:22 +0000 Received: by gxk26 with SMTP id 26so57755gxk.31 for ; Thu, 21 Oct 2010 14:40:59 -0700 (PDT) MIME-Version: 1.0 Received: by 10.151.100.10 with SMTP id c10mr4495786ybm.305.1287697259351; Thu, 21 Oct 2010 14:40:59 -0700 (PDT) Sender: scode@scode.org Received: by 10.150.158.20 with HTTP; Thu, 21 Oct 2010 14:40:59 -0700 (PDT) X-Originating-IP: [213.114.154.23] In-Reply-To: <4CC08D51.9080405@gmail.com> References: <4CBF99A8.7060304@dawningstreams.com> <4CBFB04E.6090406@gmail.com> <4CC08D51.9080405@gmail.com> Date: Thu, 21 Oct 2010 23:40:59 +0200 X-Google-Sender-Auth: ilLdnERZlQSdBbdLCjY8_w50DRU Message-ID: Subject: Re: What happens if there is a collision? From: Peter Schuller To: user@cassandra.apache.org Cc: Jonathan Ellis Content-Type: text/plain; charset=UTF-8 > OK. Thanks for your answer. From an email exchange I had with Jonathan, all > this means that one should re-read its writes with quorum to make sure they > have not been overriden by timestamp-tie conflicts. I suggested to send > feedback to writting node (in the ACK) when such timestamps-tie conflict > happen. This would avoid having to double-check all writes for timestamp-tie > conflicts. > > If multiple applications write to the same ColumnFamily/Tables, this > double-check is a must (unless a separate locking mecanism is implemented, > which would be more heavy). I'm not sure I understand what you're trying to accomplish. Given that you have no locking/synchronization mechanism external to Cassandra, what is it that you are actually learning from re-reading the value? A completed write at level QUOROM means it was successfully written and that readers reading at QUOROM will see it unless the value has been updated subsequently. But even if you re-read, that does not remove the fundamental potential for a race condition (i.e., you still don't know when you see the result of your read whether it wasn't just ovewritten anyway just after you did your read). Perhaps I'm misunderstanding what you're trying to do? -- / Peter Schuller