|
|
N Kapshoo 2010-07-15, 20:11
Hi,
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 share?
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?
Thanks.
-
Re: transactional hbase
N Kapshoo 2010-07-15, 21:57
Can someone please point me to some more info? I am concerned about inconsistent data and am evaluating risk... Thanks.
On Thu, Jul 15, 2010 at 3:11 PM, N Kapshoo <[EMAIL PROTECTED]> wrote: > Hi, > > 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 > share? > > 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? > > Thanks. >
-
Re: transactional hbase
Cosmin Lehene 2010-07-16, 09:24
Hi,
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.
Cosmin
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... > Thanks. > > On Thu, Jul 15, 2010 at 3:11 PM, N Kapshoo <[EMAIL PROTECTED]> wrote: >> Hi, >> >> 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 >> share? >> >> 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? >> >> Thanks. >>
-
Re: transactional hbase
Ted Yu 2010-07-18, 20:21
If only a subset of the child entities needs update, it is not trivial to maintain consistency across multiple writers.
On Fri, Jul 16, 2010 at 2:24 AM, Cosmin Lehene <[EMAIL PROTECTED]> wrote:
> Hi, > > 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. > > Cosmin > > 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... > > Thanks. > > > > On Thu, Jul 15, 2010 at 3:11 PM, N Kapshoo <[EMAIL PROTECTED]> wrote: > >> Hi, > >> > >> 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 > >> share? > >> > >> 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? > >> > >> Thanks. > >> > >
|
|