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 09:19:31 GMT
Hello,

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.

Regards,

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<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