Maysam,

I wasn't aware of Omid before this post, so thanks for sharing that.  I really 
like the approach and indeed our own implementation of transactions on HBase 
uses MVCC and optimistic concurrency control with a centralized transaction 
manager.  I think it's a great fit for HBase.

One question though.  You mention detection of write-write conflicts, but not 
write-read conflicts.   I'm guessing that this is because you're shooting for 
non-serializable snapshot isolation.  Why not detect write-read anomalies and 
get to serializable isolation (or at least closer to it)?  For example 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 decentralize 
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:[email protected]]
> Sent: Monday, March 19, 2012 11:45
> To: [email protected]
> Subject: Re: Hbase Transactional support
> 
> Hi Deepika,
> 
> 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 conflicts
> 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 snapshots
> and is not safe with client failures. You can find a more detailed comparison 
> in
> the Omid wiki page:
> https://github.com/yahoo/omid/wiki
> 
> Cheers
> - Maysam Yabandeh
> 
> On Mar 19, 2012, at 6:49 PM, Deepika Khera wrote:
> 
> > 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
> >
> >
> >
> >

Reply via email to