Return-Path: Delivered-To: apmail-hbase-user-archive@www.apache.org Received: (qmail 36849 invoked from network); 8 Sep 2010 15:33:27 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 8 Sep 2010 15:33:27 -0000 Received: (qmail 91844 invoked by uid 500); 8 Sep 2010 15:33:26 -0000 Delivered-To: apmail-hbase-user-archive@hbase.apache.org Received: (qmail 91686 invoked by uid 500); 8 Sep 2010 15:33:23 -0000 Mailing-List: contact user-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hbase.apache.org Delivered-To: mailing list user@hbase.apache.org Received: (qmail 91678 invoked by uid 99); 8 Sep 2010 15:33:22 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Sep 2010 15:33:22 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of saint.ack@gmail.com designates 209.85.215.169 as permitted sender) Received: from [209.85.215.169] (HELO mail-ey0-f169.google.com) (209.85.215.169) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Sep 2010 15:33:02 +0000 Received: by eyh5 with SMTP id 5so185613eyh.14 for ; Wed, 08 Sep 2010 08:32:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:content-type:content-transfer-encoding; bh=dWZCiXK91EIT0Vs5ojwjdZ6/C9bdaBvnMJTA9g1fR7M=; b=opid0Oc2j9i7vR6/HgsmfhYG58JX5VXgTXcVTRN9gFlSaD341OTB4XlwfRx63aFqYK U8Okebq/DZ2R25q6HccultbIU0qkXweXHlzlKTIcpoO0OQ0b6csHTw96DzWglOxoTsnL 7jlCsIcWoE6tTZhhP1a2qOEVDiMZ2HgHrFp5Y= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=Nj2LTNr7D8+qDvBm0mUQHcjUtWkMJPEoziNS9LDZXATqZuFoGHXFUNsBAjpvW4rWKN qnv/s2/uMmC4dVhRUsYlINFAwJpx4gwYIarRMdcbCVHj+X9URR8hKwrOmwG12R24027g wyBvM2TLXx3l85NaYxEaT48COnP3Hh4agtPiY= MIME-Version: 1.0 Received: by 10.216.154.133 with SMTP id h5mr33646wek.93.1283959960455; Wed, 08 Sep 2010 08:32:40 -0700 (PDT) Sender: saint.ack@gmail.com Received: by 10.216.131.24 with HTTP; Wed, 8 Sep 2010 08:32:40 -0700 (PDT) In-Reply-To: References: Date: Wed, 8 Sep 2010 08:32:40 -0700 X-Google-Sender-Auth: Y1na_n01WeM60sTMQCpZLCRPmsI Message-ID: Subject: Re: asynchbase: A new entirely asynchronous / non-blocking HBase client From: Stack To: user@hbase.apache.org Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Just to say that I've been reviewing this code on and off for a while now. Its great stuff. Not only is it non-blocking netty-based, at its core it has a clone of the Twitsted Deferred [1] implementation which looks like a sweet pattern for non-blocking network programming but would look to be useful beyond this use case, for example implementing a server core. St.Ack 1. http://twistedmatrix.com/documents/10.1.0/api/twisted.internet.defer.Def= erred.html On Wed, Sep 8, 2010 at 2:22 AM, tsuna wrote: > Hello, > I use Netty extensively, and for a long time I wanted to have a fully > asynchronous / non-blocking and thread-safe HBase client. =A0So 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). =A0The 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). =A0This instance is entirely thread-safe (I think :D) and > scales well in my limited loadtests (on a 4 core machine it scales > linearly). =A0I wrote it originally for another project that relies > heavily on HBase and Netty (a scalable time series database we use for > monitoring at StumbleUpon =96 http://opentsdb.net), which is gonna be > open sourced most likely during the last week of September. =A0In 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. =A0Stack wants to use it in HBase itself, but the LGPLv3+ is > unfortunately incompatible with the ASF license. =A0Others simply seem > to dislike anything with the substring "GPL" in it (:D). =A0I 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. =A0I'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. =A0I'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 >