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

> On Mon, Aug 20, 2012 at 6:18 PM, Joe Pallas <[email protected]> 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?

joe

Reply via email to