Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase >> mail # dev >> checkAndPut, checkAndDelete


Copy link to this message
-
RE: checkAndPut, checkAndDelete
Hi Dishant

In my first point the check on the client side what I meant is
{code}
    if (!Bytes.equals(row, r.getRow())) {
      throw new DoNotRetryIOException("Action's getRow must match the passed
row");
    }
{code}
Currently there is a check happening in server side before even we get the
lock.  I thought this check can be moved to client because the row passed in
the param and the one in
Delete/Put are expected to be same.

But seeing the code I felt like we are trying to check the same row only.  I
did not mean to compare the family and qualifier, the row is expected to be
same as per the above code.
So I meant that the row need not be passed explicity.

Regards
Ram

> -----Original Message-----
> From: Dishant A [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 02, 2012 7:34 PM
> To: [EMAIL PROTECTED]
> 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 <
> [EMAIL PROTECTED]> 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
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >