hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Pallas <joseph.pal...@oracle.com>
Subject Re: Thrift2 interface
Date Wed, 22 Aug 2012 23:06:06 GMT

On Aug 21, 2012, at 9:29 AM, Stack wrote:

> On Mon, Aug 20, 2012 at 6:18 PM, Joe Pallas <joseph.pallas@oracle.com> wrote:
>> Anyone out there actively using the thrift2 interface in 0.94?  Thrift bindings for
C++ don’t seem to handle optional arguments too well (that is to say, it seems that optional
arguments are not optional).  Unfortunately, checkAndPut uses an optional argument for value
to distinguish between the two cases (value must match vs no cell with that column qualifier).
 Any clues on how to work around that difficulty would be welcome.
> If you make a patch, we'll commit it Joe.

Well, I think the patch really needs to be in Thrift; the only workaround I can see is to
restructure the hbase.thrift interface file to avoid having routines with optional arguments.
 It seems a shame to break compatibility with existing clients for that, and I am not sure
if there is a way to do it without breaking compatibility.  (On the other hand, we’re talking
about thrift2, so it isn’t like there are many existing clients.)

The state of Thrift documentation is lamentable.  The original white paper is the most detailed
information I can find about compatibility rules.  It has enough information to tell me that
Thrift doesn’t support overloading of routine names within a service, because the names
are the identifiers used to identify the routines.  I think that means it isn’t possible
to make a compatible change that would only affect the client side.
> Have you seen this?
> https://github.com/facebook/native-cpp-hbase-client  Would it help?

The native client stuff is certainly interesting, but, as near as I can tell, it expects the
in-region-server Thrift server, which I would like to give a chance to mature a bit before
playing with.  I’m also puzzled by the hbase.thrift file in that repository.  It seems to
be based on the older HBase Thrift interface, but it adds some functions.  I can’t see how
a client could use them, though, since there are no HBase-side patches.

Anyone involved with FB’s native client efforts care to enlighten me?


View raw message