HBase supports row-level atomic operations. If you need to update more than a row in a single transaction you'll have to use a coordination mechanism. You can use Zookeeper for that.
However you can also evaluate whether you can't use a single table for your operation by taking advantage of the columnar model. Basically you can encode an entire star schema in a single table in HBase. Each family can act as a table. So when you have 1-M relations you can just write all the values (M) in a single row (1). This way you could use a single put operation to update your "child" entities.
On Jul 16, 2010, at 12:57 AM, N Kapshoo wrote:
> Can someone please point me to some more info? I am concerned about
> inconsistent data and am evaluating risk...
> On Thu, Jul 15, 2010 at 3:11 PM, N Kapshoo <[EMAIL PROTECTED]> wrote:
>> I have a write API call that does 3 puts (2 puts to one table and a
>> 3rd put to a second table). How do I go about making sure that these
>> all happen or none happen at all? In short, an atomic transaction.
>> I read up a little bit about the TransactionManager and that I need to
>> modify hbase-site.xml to make these TransactionalRegion Servers. Can
>> someone point me to some more info about the same? What versions, what
>> performance impacts etc? Are there some good urls that anyone can
>> I am using HBase 0.20.3 at this time. I dont believe transactions are
>> supported in this version. If I were to go live and then decide to use
>> transactions later, how should I plan on an upgrade?