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 12:50:07 GMT
Hi,

I've also decided to give the C++ Thrift a try, but I can't seem to 
compile the simple examples from
http://wiki.apache.org/cassandra/ThriftExamples .

I get lots of errors like :
     /usr/local/include/thrift/transport/TTransport.h:34:1: error: 
‘uint32_t’ does not name a type
     /usr/local/include/thrift/transport/TTransport.h:56:1: error: 
expected unqualified-id before ‘class’
     /usr/local/include/thrift/transport/TTransport.h:262:29: error: 
‘TTransport’ was not declared in this scope
     /usr/local/include/thrift/transport/TTransport.h:262:39: error: 
template argument 1 is invalid
     /usr/local/include/thrift/transport/TTransport.h:262:72: error: 
‘TTransport’ was not declared in this scope
     /usr/local/include/thrift/transport/TTransport.h:262:82: error: 
template argument 1 is invalid

Thrift version is 0.8, installed from sources, Cassandra version in 1.0.6.

Any ideas ?

Regards,

Vlad Paiu
OpenSIPS Developer


On 12/16/2011 11:02 AM, Vlad Paiu wrote:
> 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