incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vlad Paiu <>
Subject Re: Cassandra C client implementation
Date Thu, 15 Dec 2011 09:19:31 GMT

Congratulations on your work on libcassandra & libcassie.
I agree with you that too many abstractions are not a good thing, that's 
why I think thrift & glib are a much better way to go than thrift & cpp 
& libcassandra & libcassie.

I as well am looking for a very basic Thrift & glibc example for 
Cassandra, with no 'advanced' features like connection pooling, 
asynchronous stuff, etc.
Just a plain & simple connection, an insert and a column fetch that 
works with the latest 1.x Cassandra.
I think it would be a great starting point and we could move on from there.


Vlad Paiu
OpenSIPS Developer

On 12/15/2011 03:53 AM, Mina Naguib 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<>  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<>   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
>>> Hopefully that helps.  I idle in #opensips too,  just ask about
>>> cassandra in there and I'll probably see it.
>>> - Eric Tamme

View raw message