Return-Path: X-Original-To: apmail-hbase-user-archive@www.apache.org Delivered-To: apmail-hbase-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 199F7922A for ; Mon, 19 Mar 2012 19:47:36 +0000 (UTC) Received: (qmail 81549 invoked by uid 500); 19 Mar 2012 19:47:34 -0000 Delivered-To: apmail-hbase-user-archive@hbase.apache.org Received: (qmail 81505 invoked by uid 500); 19 Mar 2012 19:47:34 -0000 Mailing-List: contact user-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hbase.apache.org Delivered-To: mailing list user@hbase.apache.org Received: (qmail 81497 invoked by uid 99); 19 Mar 2012 19:47:34 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Mar 2012 19:47:34 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of prattrs@adobe.com designates 64.18.1.31 as permitted sender) Received: from [64.18.1.31] (HELO exprod6og113.obsmtp.com) (64.18.1.31) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Mar 2012 19:47:26 +0000 Received: from outbound-smtp-1.corp.adobe.com ([192.150.11.134]) by exprod6ob113.postini.com ([64.18.5.12]) with SMTP ID DSNKT2eNOCcLUTPESKP6C4o/F5h/zCgaiYGy@postini.com; Mon, 19 Mar 2012 12:47:06 PDT Received: from inner-relay-4.eur.adobe.com (inner-relay-4.adobe.com [193.104.215.14]) by outbound-smtp-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id q2JJj1J0022350 for ; Mon, 19 Mar 2012 12:45:02 -0700 (PDT) Received: from nahub02.corp.adobe.com (nahub02.corp.adobe.com [10.8.189.98]) by inner-relay-4.eur.adobe.com (8.12.10/8.12.9) with ESMTP id q2JJkxPn009357 for ; Mon, 19 Mar 2012 12:47:02 -0700 (PDT) Received: from NAMBX02.corp.adobe.com ([10.8.127.96]) by nahub02.corp.adobe.com ([10.8.189.98]) with mapi; Mon, 19 Mar 2012 12:47:01 -0700 From: Sandy Pratt To: "user@hbase.apache.org" Date: Mon, 19 Mar 2012 12:46:59 -0700 Subject: RE: Hbase Transactional support Thread-Topic: Hbase Transactional support Thread-Index: Ac0GAFSB91vje/KTTUSHdfBIErxZ/QAAy2wg Message-ID: <0D0534D89070F347A7ACC0D03FCE696B03DCC3719A@NAMBX02.corp.adobe.com> References: <1332178871.62776.ezmlm@hbase.apache.org> <1332179365.15170.156.camel@dkhera-lt> <77883605-1D58-403A-A4D0-008B71A406F2@yahoo-inc.com> In-Reply-To: <77883605-1D58-403A-A4D0-008B71A406F2@yahoo-inc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org Maysam, I wasn't aware of Omid before this post, so thanks for sharing that. I rea= lly like the approach and indeed our own implementation of transactions on = HBase uses MVCC and optimistic concurrency control with a centralized trans= action manager. I think it's a great fit for HBase. One question though. You mention detection of write-write conflicts, but n= ot write-read conflicts. I'm guessing that this is because you're shootin= g for non-serializable snapshot isolation. Why not detect write-read anoma= lies and get to serializable isolation (or at least closer to it)? For exa= mple it seems like you could detect the write skew anomaly (described here = http://en.wikipedia.org/wiki/Snapshot_isolation) by tracking a little more = state in your Status Oracle. Were you trying to reduce state or decentrali= ze it or something? Is there simply no need for that level of isolation? Apologies if this is clear in the code, which I haven't yet read thoroughly= . Thanks, Sandy > -----Original Message----- > From: Maysam Yabandeh [mailto:maysam@yahoo-inc.com] > Sent: Monday, March 19, 2012 11:45 > To: user@hbase.apache.org > Subject: Re: Hbase Transactional support >=20 > Hi Deepika, >=20 > Omid provides Snapshot Isolation (SI), which is a well-known isolation > guarantee in database systems such as Oracle. In short, each transaction > reads from a consistent snapshot that does not include partial changes by > concurrent (or failed) transactions. SI also prevents write-write conflic= ts > between concurrent transactions. The overhead of Omid on HBase is > negligible and does not require any changes into HBase, with the only > exception of HBase garbage collection algorithm that is replaced via a > coprocessor. hbase-trx, on the other hand, does not provide read snapshot= s > and is not safe with client failures. You can find a more detailed compar= ison in > the Omid wiki page: > https://github.com/yahoo/omid/wiki >=20 > Cheers > - Maysam Yabandeh >=20 > On Mar 19, 2012, at 6:49 PM, Deepika Khera wrote: >=20 > > Hi, > > > > I have some map reduce jobs that write to Hbase. I am trying to pick a > > library that could provide transactional support for Hbase. I looked > > at Omid and hbase-trx . > > > > Could you please provide me with a comparison between the two so I can > > make the right choice. > > Are there any other ways to do this? > > > > Thanks, > > Deepika > > > > > > > >