hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zhou <newemai...@gmail.com>
Subject Re: Is the latest version of Hbase support multiple updates on same row at the same time?
Date Thu, 17 Apr 2008 14:43:36 GMT
Bryan Duxbury <bryan@...> writes:

> 
> Yes. Take a look at the BatchUpdate class in TRUNK.
> -Bryan
> 
> On Apr 15, 2008, at 12:56 AM, Zhou wrote:
> 
> > Hi,
> >
> > Currently, I'm using the HBase version inside Hadoop 0.16.0 package
> > I access HBase with a multi-threaded application.
> > It appears that only one update of a row could be in progress at a  
> > time or there
> > would be an exception.
> > The document said that it would be fixed in version 0.2.0.
> > Is there already a version that fixes this?
> > Either released or still in development version?
> >
> > Thanks,
> > Zhou
> >
> 
> 


I've look at the source code of BatchUpdate class.
I believe it collects update operations of one specified row.
And submit to the HRegionServer which locates this row via one RPC call.
Am I right?

So in one server, I can actually cache all updates of a specified row to one
BatchUpdate object. And it might work for one process on one server.
However, how about multiple processes running concurrently on different servers?
Each of them have one BatchUpdate class of their own. I doubt it would still
cause the "update in progress" exception.

Even though I assume it works, since one row one BatchUpdate object,
if I have millions of rows, I would have to create millions of object.
I don't think it is workable.
And how many batch operations should I cached in the BatchUpdate object before
commit?
What if the updates requires immediate Durability requirement (D in ACID)?

I believe It is better to solve the concurrent update problem at the server-side.
BatchUpdate would not work at lest for massive size of data or high load.
I hope HBase could fix the problem in the near future.

Is any version of HBase allows concurrent updates while what we need to do is
only type
table.commit(id)?

Thanks.



Mime
View raw message