hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Elliott Clark <ecl...@apache.org>
Subject Re: What's going on? Two C++ clients being developed at the moment?
Date Mon, 18 Apr 2016 22:38:27 GMT
Yeah there's currently two different implementation efforts on-going.

I started working on a cpp client a while ago. Then there was some interest
in working on the cpp client from other parties. So I put some of the
implementation up. Things stayed there for a while. Then interest surged
again. Vamsi had been working on some code away from jira's.

As I see it right now, the cpp client is a great place to learn from our
mistakes. Async client is needed; it's simpler and cleaner. Retrofitting
async onto of a synchronous implementation leads to a very large mess (I
give you AsyncProcess). So I've been working on a fully async client using
Boost, Folly and Wangle. These are the libraries that power thrift at
Facebook. So I have some good faith in them being very fast and well
maintained. Folly and Wangle together allow for very few copy network
layer. I've provided a convenience docker file that has all libraries
needed. This allows everyone that's building to build vs the exact same

Vamsi et al have created something that works now. It's able to connect and
send some commands. It's synchronous building on the poco library. It
builds using autotools.

For me I have a few concerns around the other implementations:

* Who will support it. The HBase community has not had good luck with large
code drops from people who are not running the code every day.
* Sync client has been very hard to keep a clean code base. Why start with
that when there's a way forward that doesn't
* Poco: It's a library that I haven't heard of and I don't know the
scale/testing of it.
* There's code with other people's copyrights on the headers. For me this
is just a no-go. Importing code that has questions about who wrote what is
just a recipe to have Apache's lawyers get upset. Dima raised some points
that some things look to be gnu licensed.
* It uses XML for configuration of a native lib. That's something that is
VERY strange. I don't know another client lib that does that.

For the async implementation there are still some things that need to be
cleaned up:
* Some people would like to use a build system other than buck. That's
fine, I think anyone that wanted to add on a cmake file would be a nice
* There's still more work to go. Right now we can connect, send the header,
send a request header, and serialize across the request body. Getting the
response isn't there, and locating things in meta isn't done.

On Mon, Apr 18, 2016 at 2:56 PM, Stack <stack@duboce.net> wrote:

> Correct me if I am wrong, but it seems like there are two (different?) C++
> clients underway? There is the work by Vamsi Mohan V S Thattikota that is
> going on in HBASE-15534 and then there is what seems like a different
> effort over in HBASE-14850 C++ client implementation by the mighty Elliott.
> Whats up? We going to carry two c++ clients? Work together?
> Thanks,
> St.Ack

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message