Hello,
I use Netty extensively, and for a long time I wanted to have a fully
asynchronous / non-blocking and thread-safe HBase client.  So I ended
up writing one from scratch, which I just released at:
http://github.com/stumbleupon/asynchbase

It's rather different from HBase's own client (HTable).  The core of
asynchbase is made of HBaseClient (javadoc @ http://su.pr/1PJCSY), and
you normally need only a single instance (vs. one per table with
HTable).  This instance is entirely thread-safe (I think :D) and
scales well in my limited loadtests (on a 4 core machine it scales
linearly).  I wrote it originally for another project that relies
heavily on HBase and Netty (a scalable time series database we use for
monitoring at StumbleUpon – http://opentsdb.net), which is gonna be
open sourced most likely during the last week of September.  In some
write-heavy code paths I'm seeing a 3x to 4x throughput improvement
with asynchbase.

There's a heated debate ongoing at StumbleUpon about the license of
the client.  Stack wants to use it in HBase itself, but the LGPLv3+ is
unfortunately incompatible with the ASF license.  Others simply seem
to dislike anything with the substring "GPL" in it (:D).  I haven't
had much time to find another license yet, but I think we're going to
switch to something like a BSD or MIT style license.  I'm going in
vacation soon so I wanted to get some feedback from other HBase users
instead of blocking on this stupid and annoying licensing issue.

Your feedback or patches would be most welcome!

PS: The source code
(http://github.com/stumbleupon/asynchbase/blob/master/src/HBaseRpc.java)
contains an unofficial documentation of the Hadoop and HBase RPC
protocols as well as Hadoop's variable-length encoding for integer
values.  I've heard that others may be interested in implementing
native HBase clients in non-Java languages, so I thought I'd pass this
around to save their time.

-- 
Benoit "tsuna" Sigoure
Software Engineer @ www.StumbleUpon.com

Reply via email to