The blocking interface is just used to tie the request type to a response
type. The actual non-blocking/blocking part is implemented in HBaseRPC
(it actually uses nio to do the io).
If you want to create your own client that's non-blocking you'll have to
create your own version of HBaseRPC and the serialization. Here's
something close to what you were talking about that I created. It can read
root and meta but not much more:
Though currently in trunk lots of changes have been made for how HBase
sends KeyValues across the wire.
On Tue, Dec 11, 2012 at 9:08 PM, Ted Yu <[EMAIL PROTECTED]> wrote:
> protobuf is used in HBase for serialization.
> I searched the files under
> hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated but
> didn't see any non-blocking interface.
> A brief search on the web resulted in:
> But that thread was really old.
> Would do more searching.
> On Tue, Dec 11, 2012 at 6:05 PM, Mick Hittesdorf
> <[EMAIL PROTECTED]>wrote:
> > Thanks for the information. I was wondering why the ClientProtocol
> > specifically implements the BlockingInterface? I want to write a
> > non-blocking, event-driven, asynchronous, multi-threaded client similar
> > asynchhbase (https://github.com/OpenTSDB/asynchbase) but in C++. Am I
> > going to need to 'hide' the blocking semantics implemented by HBase in my
> > client in order to achieve this?
> > Thanks in advance! Mick
> > On Mon, Dec 10, 2012 at 11:00 PM, Ted Yu <[EMAIL PROTECTED]> wrote:
> > > src/main/java/org/apache/hadoop/hbase/client/ClientProtocol.java
> > >