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: https://github.com/elliottneilclark/hbase/tree/webscale_client 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: > https://groups.google.com/forum/?fromgroups=#!topic/protobuf/s7jAGvJKgmA > > But that thread was really old. > > Would do more searching. > > Cheers > > 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 > to > > 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 > > > > > >
