Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 97428 invoked from network); 8 Apr 2011 22:47:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 8 Apr 2011 22:47:08 -0000 Received: (qmail 30235 invoked by uid 500); 8 Apr 2011 22:47:06 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 30205 invoked by uid 500); 8 Apr 2011 22:47:06 -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 30197 invoked by uid 99); 8 Apr 2011 22:47:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Apr 2011 22:47:06 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [63.146.121.108] (HELO mail.venarc.com) (63.146.121.108) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Apr 2011 22:46:58 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.venarc.com (Postfix) with ESMTP id 437436F00002 for ; Fri, 8 Apr 2011 15:46:37 -0700 (PDT) X-Virus-Scanned: amavisd-new at venarc.com Received: from mail.venarc.com ([127.0.0.1]) by localhost (mail.venarc.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2z+T0cYbgM9G for ; Fri, 8 Apr 2011 15:46:37 -0700 (PDT) Received: from venarc-drew.venarc.pvt (unknown [192.168.25.101]) by mail.venarc.com (Postfix) with ESMTPSA id 051106F00001 for ; Fri, 8 Apr 2011 15:46:36 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1084) Subject: Re: Atomicity Strategies From: Drew Kutcharian In-Reply-To: <4D9F6F7E.5010907@alex.otherinbox.com> Date: Fri, 8 Apr 2011 15:46:36 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <5F856847-796F-4716-859F-73F05F567206@venarc.com> References: <4D9F6F7E.5010907@alex.otherinbox.com> To: user@cassandra.apache.org X-Mailer: Apple Mail (2.1084) X-Virus-Checked: Checked by ClamAV on apache.org I'm interested in this too, but I don't think this can be done with = Cassandra alone. Cassandra doesn't support transactions. I think hector = can retry operations, but I'm not sure about the atomicity of the whole = thing. On Apr 8, 2011, at 1:26 PM, Alex Araujo wrote: > Hi, I was wondering if there are any patterns/best practices for = creating atomic units of work when dealing with several column families = and their inverted indices. >=20 > For example, if I have Users and Groups column families and did = something like: >=20 > Users.insert( user_id, columns ) > UserGroupTimeline.insert( group_id, { timeuuid() : user_id } ) > UserGroupStatus.insert( group_id + ":" + user_id, { "Active" : "True" = } ) > UserEvents.insert( timeuuid(), { "user_id" : user_id, "group_id" : = group_id, "event_type" : "join" } ) >=20 > Would I want the client to retry all subsequent operations that failed = against other nodes after n succeeded, maintain an "undo" queue of = operations to run, batch the mutations and choose a strong consistency = level, some combination of these/others, etc? >=20 > Thanks, > Alex >=20 >=20