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 Fri, 16 Dec 2011 09:02:18 GMT
Hello,

Sorry, wrong link in the previous email. Proper link is
     http://svn.apache.org/viewvc/thrift/trunk/lib/c_glib/test/

Regards,

Vlad Paiu
OpenSIPS Developer


On 12/15/2011 08:35 PM, Vlad Paiu wrote:
> 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