hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anoop Sam John <anoo...@huawei.com>
Subject RE: checkAndPut, checkAndDelete
Date Mon, 02 Jul 2012 17:59:42 GMT
Yes as Ram said the rowId passed to the API and rowId in Put/Delete need to be the same. We
can see this check at the server side. I was wondering why these APIs were taking the extra
rowId param.
I thought at 1st that these can be different rows, add a row if value of a column in another
row is some 'x''. This can not be satisfied anyway  I think. The operation needs to be under
single transaction at server side. So these rows ( if we allow to be diff rows) to be in same
region.   Can some one explain why we added the rowId extra param in the API?  Any way it
might be better to add the client side check IMO. Fail fast wl be better.. 

-Anoop-
________________________________________
From: Dishant A [hbase.project@gmail.com]
Sent: Monday, July 02, 2012 7:33 PM
To: dev@hbase.apache.org
Subject: Re: checkAndPut, checkAndDelete

Hi Ram,

1) Can you do this check on client side?
You can't, because this operation is supposed to be atomic and if you do a
get and the value changes on server side in the meantime, you will be doing
it wrong.


2) Can we just use the row that is stuffed inside the Put/Delete?
(Anyway this change will be an api change).

This lose the case when you want to check the value of column A and based
on it change the value of column B. So again we can't.

Hope this helps.

Thanks,
Dishant

On Mon, Jul 2, 2012 at 4:44 AM, Ramkrishna.S.Vasudevan <
ramkrishna.vasudevan@huawei.com> wrote:

> Hi Devs
>
>
>
> Currently the checkAndPut, checkAndDelete these api currently accept the
> row
> that needs to be checked and the Delete/Put also along with it.
>
>
>
> Again internally in the code HRegion.checkAndMutate() there is a
> verification to find if the row passed and the one inside the
> Mutate(Put/Delete) object are same.  If not throw an exception.
>
>
>
> 1)      Can we do this check on the client side itself?
>
> 2)      Can we just use the row that is stuffed inside the Put/Delete?
> (Anyway this change will be an api change).
>
>
>
> Pls correct me if am missing something here.
>
>
>
> Regards
>
> Ram
>
>
>
>
>
>
>
>
>
>

Mime
View raw message