Hi, I've been trying to piece together some notion of how to use cassandra from an erlang client.
So far I have managed to come up with the following, but it doesn't work. Unfortunately there does not seem to be any decent documentation on the subject I can find with googling so I'm hoping some more experienced members of this mailing list can point out what I'm doing wrong. I'm using cassandra 0.5, and I think the latest version of thrift. I generated the thrift erlang client code using: $ thrift -r --gen erl cassandra.thrift And compiled and copied that into my ebin area, along with the rest of the thrift erlc library code. I start cassandra using its default config bin/cassandra -f and there are no apparent errors: $ bin/cassandra -f Listening for transport dt_socket at address: 8888 INFO - Sampling index for /var/lib/cassandra/data/system/LocationInfo-9-Data.db INFO - Replaying /var/lib/cassandra/commitlog/CommitLog-1267655779083.log INFO - Log replay complete INFO - Saved Token found: 141354730401634313333347303685581151939 INFO - Starting up server gossip INFO - Cassandra starting up... then after a few seconds, it displays this: Debugger failed to attach: timeout during handshake Then from an erl vm I try the following: rr(cassandra_types). {ok, C} = thrift_client:start_link("localhost",8888, cassandra_thrift). thrift_client:call( C, 'insert', [ "Keyspace1", "1", #columnPath{column_family="Standard1", column="email"}, "t...@example.com", 1, 1 ] ). Unfortunately, although I get a cassandra_thrift client connection, the call to insert fails with : =ERROR REPORT==== 4-Mar-2010::07:57:50 === ** Generic server <0.333.0> terminating ** Last message in was {call,insert, ["Keyspace1","1", {columnPath,"Standard1",undefined,"email"}, "t...@example.com",1,1]} ** When Server state == {state,cassandra_thrift, {protocol,thrift_binary_protocol, {binary_protocol, {transport,thrift_buffered_transport,<0.334.0>}, true,true}}, 0} ** Reason for termination == ** {{case_clause,{error,closed}}, [{thrift_client,read_result,3}, {thrift_client,catch_function_exceptions,2}, {thrift_client,handle_call,3}, {gen_server,handle_msg,5}, {proc_lib,init_p_do_apply,3}]} ** exception exit: {case_clause,{error,closed}} in function thrift_client:read_result/3 in call from thrift_client:catch_function_exceptions/2 in call from thrift_client:handle_call/3 in call from gen_server:handle_msg/5 in call from proc_lib:init_p_do_apply/3 Cassandra itself reports nothing. -- JT.