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.nag...@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<eta...@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<vladp...@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