incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vlad Paiu <vladp...@opensips.org>
Subject Re: Cassandra C client implementation
Date Thu, 15 Dec 2011 18:35:03 GMT
Hello,

While digging more for this I've found these :

http://svn.apache.org/viewvc/thrift/lib/c_glib/test/

Which shows how to create the TSocket and TTransport structures, very similar to the way it's
done in C++.

Now I'm stuck on how to create the actual connection to the Cassandra server. It should be
a function generated by the Cassandra thrift interface, but I can't seem to find the proper
one.
Any help would be very much appreciated.

Regards,
Vlad

Mina Naguib <mina.naguib@bloomdigital.com> wrote:

>
>Hi Vlad
>
>I'm the author of libcassie.
>
>For what it's worth, it's in production where I work, consuming a heavily-used cassandra
0.7.9 cluster.
>
>We do have plans to upgrade the cluster to 1.x, to benefit from all the improvements,
CQL, etc... but that includes revising all our clients (across several programming languages).
>
>So, it's definitely on my todo list to address our C clients by either upgrading libcassie,
or possibly completely rewriting it.
>
>Currently it's a wrapper around the C++ parent project libcassandra.  I haven't been fond
of having that many layered abstractions, and the thrift Glib2 interface has definitely piqued
my interest, so I'm leaning towards a complete rewrite.
>
>While we're at it, it would also be nice to have features like asynchronous modes for
popular event loops, connection pooling, etc.
>
>Unfortunately, I have no milestones set for any of this, nor the time (currently) to experiment
and proof-of-concept it.
>
>I'd be curious to hear from other C hackers whether they've experimented with the thrift
Glib2 interface and gotten a "hello world" to work against cassandra 1.x.  Perhaps there's
room for some code sharing/collaboration on a new library to supersede the existing libcassie+libcassandra.
>
>
>On 2011-12-14, at 5:16 PM, Vlad Paiu wrote:
>
>> Hello Eric,
>> 
>> We have that, thanks alot for the contribution.
>> The idea is to not play around with including C++ code in a C app, if there's an
alternative ( the thrift g_libc ).
>> 
>> Unfortunately, since thrift does not generate a skeleton for the glibc code, I don't
know how to find out what the API functions are called, and guessing them is not going that
good :)
>> 
>> I'll wait a little longer & see if anybody can help with the C thrift, or at
least tell me it's not working. :)
>> 
>> Regards,
>> Vlad
>> 
>> Eric Tamme <etamme@gmail.com> wrote:
>> 
>>> On 12/14/2011 04:18 PM, Vlad Paiu wrote:
>>>> Hi,
>>>> 
>>>> Just tried libcassie and seems it's not compatible with latest cassandra,
as even simple inserts and fetches fail with InvalidRequestException...
>>>> 
>>>> So can anybody please provide a very simple example in C for connecting&
 fetching columns with thrift ?
>>>> 
>>>> Regards,
>>>> Vlad
>>>> 
>>>> Vlad Paiu<vladpaiu@opensips.org>  wrote:
>>>> 
>>> 
>>> Vlad,
>>> 
>>> We have written a specific cassandra db module for usrloc with opensips 
>>> and have open sourced it on github.  We use the thrift generated c++ 
>>> bindings and extern stuff to c.  I spoke to bogdan about this a while 
>>> ago, and gave him the github link, but here it is for your reference   
>>> https://github.com/junction/db_jnctn_usrloc
>>> 
>>> Hopefully that helps.  I idle in #opensips too,  just ask about 
>>> cassandra in there and I'll probably see it.
>>> 
>>> - Eric Tamme
>>> 
>
Mime
View raw message