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

Colin Patrick McCabe commented on HTRACE-362:
---------------------------------------------

bq. The only snag here is that Kudu doesn't currently have a pure C API, only 
C+, and wrapping C+ is typically a bit harder (though doable).

I'm a bit surprised that there isn't a C API yet since that's typically how 
people do Python, Ruby, Lua, etc. etc. bindings.  However, you can use SWIG to 
wrap C\+\+ in Go.  http://www.swig.org/Doc2.0/Go.html

bq. Some kind of small daemon in java or C++ which speaks thrift or grpc and 
asks as a "proxy" to Kudu might be the easiest bet in terms of connecting from 
go, even though it's one more moving piece.

If you are going to write a new daemon, you might as well go with solution #2, 
where you just have a new standalone web server.  You could probably go with 
Java for this piece.  The number of concurrent connections to the web server 
will not be high.

bq. Or, a small C library which you can embed in Go, and internally is 
implemented on top of the C++ kudu client, should work pretty well too.

A lot of projects find it difficult or impossible to actually have a stable 
C\+\+ ABI.  It's very easy to end up with two different C\+\+ library versions 
that look compatible but which crash when you use code linked against one with 
code linked against another.  I think an external C library would have the same 
problems.  However, implementing a C API in Kudu could be one way to go.

> Apache KUDU Span receiver implementation for Apache HTrace
> ----------------------------------------------------------
>
>                 Key: HTRACE-362
>                 URL: https://issues.apache.org/jira/browse/HTRACE-362
>             Project: HTrace
>          Issue Type: Bug
>            Reporter: Nisala Mendis
>            Assignee: Nisala Mendis
>         Attachments: kudu_span_receiver_basic_design.pdf
>
>
> Implementation should be carried two components as span receiver that writes 
> kudu back end and span viewer to view written span/traces.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to