[ 
https://issues.apache.org/jira/browse/HBASE-1015?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13556412#comment-13556412
 ] 

Andrew Purtell edited comment on HBASE-1015 at 1/17/13 5:59 PM:
----------------------------------------------------------------

bq. I don't think the thrift core makes sense anymore, considering protobuf. 

I would agree. The embedded thrift servers in the regionservers were an 
experiment at FB that they've backed away from. THRIFT-1620 is open with no 
implementation available.

bq. I think an HBase client library implemented in C is a mandatory feature for 
a database approaching 1.0 release.

The PB work is not finished.

The scope of building a C client is not just the transport, it's also 
duplicating or replacing all of the functionality of the fat Java client.

Various discussions about "native client" usually end with the notion of a 
Grand Unified Client Project: lighter weight async client, perhaps asynchbase 
itself or in the mold of it, talking PB to the cluster, with a sync API layered 
on top. It might be straightforward to build a C++ analogue to asynchbase with 
std::async (don't know enough about C++11 to say for sure). That does not 
provide an answer for C folks though.
                
      was (Author: apurtell):
    bq. I don't think the thrift core makes sense anymore, considering 
protobuf. 

I would agree. The embedded thrift servers in the regionservers were an 
experiment at FB that they've backed away from. THRIFT-1620 is open with no 
implementation available.

bq. I think an HBase client library implemented in C is a mandatory feature for 
a database approaching 1.0 release.

The PB work is not finished.

The scope of building a C client is not just the transport, it's also 
duplicating or replacing all of the functionality of the fat Java client.

Various discussions I have had about "native client" usually end with the 
notion of a Grand Unified Client Project: lighter weight async client, perhaps 
asynchbase itself or in the mold of it, talking PB to the cluster, with a sync 
API layered on top. It might be straightforward to build a C++ analogue to 
asynchbase with std::async (don't know enough about C++11 to say for sure).
                  
> pure C and C++ client libraries
> -------------------------------
>
>                 Key: HBASE-1015
>                 URL: https://issues.apache.org/jira/browse/HBASE-1015
>             Project: HBase
>          Issue Type: New Feature
>          Components: Client
>    Affects Versions: 0.20.6
>            Reporter: Andrew Purtell
>            Priority: Minor
>
> If via HBASE-794 first class support for talking via Thrift directly to 
> HMaster and HRS is available, then pure C and C++ client libraries are 
> possible. 
> The C client library would wrap a Thrift core. 
> The C++ client library can provide a class hierarchy quite close to 
> o.a.h.h.client and, ideally, identical semantics. It  should be just a 
> wrapper around the C API, for economy.
> Internally to my employer there is a lot of resistance to HBase because many 
> dev teams have a strong C/C++ bias. The real issue however is really client 
> side integration, not a fundamental objection. (What runs server side and how 
> it is managed is a secondary consideration.)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to