hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lars hofhansl <lhofha...@yahoo.com>
Subject Re: CheckAndAppend Feature
Date Wed, 08 Aug 2012 02:04:31 GMT
Yep... It's up to implementer of the RegionObserver to avoid deadlocks (lock ordering, two
phase locking if needed, etc).
As long as only a single lock is taken (and released) there can be no deadlock.

More rope for a Coprocessor implementer to hang him/her self :)
Since Coprocessor are there to extend HBase without the need to subclass - say - HRegionServer
or HRegion this is OK (IMHO).

-- Lars

----- Original Message -----
From: Michael Segel <michael_segel@hotmail.com>
To: user@hbase.apache.org; lars hofhansl <lhofhansl@yahoo.com>
Sent: Tuesday, August 7, 2012 6:25 PM
Subject: Re: CheckAndAppend Feature

Hi Lars, 

To be honest its just an initial gut feel. 
I haven't thought the issue through and I wonder if there are any downsides like dead locks
or if some code goes awry how to recover. 

I understand that its on the server side, and that's why I'm a little concerned. 

On Aug 7, 2012, at 8:05 PM, lars hofhansl <lhofhansl@yahoo.com> wrote:

> Hi Mike,
> do you have a specific downside in mind?The built-in checkAndSet type operations do the
> Coprocessors are an extension mechanism for HBase, not to be compared with (say) server
side stored procedures in relational databases.
> (the canonical example is that nothing stops a RegionObserver implementation from calling
System.exit(), taking the RegionServer with it).
> -- Lars
> ----- Original Message -----
> From: Michael Segel <michael_segel@hotmail.com>
> To: user@hbase.apache.org; lars hofhansl <lhofhansl@yahoo.com>
> Cc: 
> Sent: Tuesday, August 7, 2012 5:54 PM
> Subject: Re: CheckAndAppend Feature
> While this may be a trivial fix, have you considered possible down sides to the implementation?
> I'm not sure its a bad idea, but one that could have some potential issues when put into
> -Mike
> On Aug 7, 2012, at 7:30 PM, lars hofhansl <lhofhansl@yahoo.com> wrote:
>> I filed HBASE-6522. It is a trivial change to make locks and leases available to
>> So checkAndSet type operations can then be implemented via coprocessor endpoints:
lock row, check, fail or update, unlock row.
>> Since the patch is so simple I'll commit that soon (to 0.94.2 and 0.96)
>> -- Lars
>> ________________________________
>> From: lars hofhansl <lhofhansl@yahoo.com>
>> To: "user@hbase.apache.org" <user@hbase.apache.org> 
>> Sent: Tuesday, August 7, 2012 8:55 AM
>> Subject: Re: CheckAndAppend Feature
>> There is no such functionality currently, and there is no good way to simulate that.
>> Currently that cannot even be done with a coprocessor endpoint, because region coprocessors
have no way to create a region lock (just checked the code).
>> (That is something we have to change I think - I will create an issue once the Jira
system is back from the walk in the park).
>> -- Lars
>> ----- Original Message -----
>> From: Jerry Lam <chilinglam@gmail.com>
>> To: user <user@hbase.apache.org>
>> Cc: 
>> Sent: Tuesday, August 7, 2012 8:22 AM
>> Subject: CheckAndAppend Feature
>> Hi HBase community:
>> I checked the HTable API, it has checkAndPut and checkAndDelete but I'm
>> looking for checkAndAppend. Is there a way to simulate similarly?
>> For instance, I want to check the last 32 bytes of a value (let assume that
>> it has 128 bytes in total) in a column before appending atomically some
>> values into it.
>> Thanks!
>> Jerry

View raw message