Re: Multiple writers writing to a cassandra node...
Fixed the bug. One of the clients was trying to drop a context to which another client was writing and this was causing the exception. Thanks. On Dec 8, 2013 11:31 PM, Aaron Morton aa...@thelastpickle.com wrote: IllegalRequestException does not existing in the server code in version 2.0. Is this thrown by the client ? InvalidRequestException is thrown in a number of places. Check you are using the client correctly. cheers - Aaron Morton New Zealand @aaronmorton Co-Founder Principal Consultant Apache Cassandra Consulting http://www.thelastpickle.com On 2/12/2013, at 3:33 am, Krishna Chaitanya bnsk1990r...@gmail.com wrote: Hi, The exception occurs on the clients. The server is fine. FYI, I dont do any reads, only writes to cassandra. I re-run the experiment everytime after dropping all the created columnfamilies and key spaces. Thanks... On Sun, Dec 1, 2013 at 4:57 AM, Krishna Chaitanya bnsk1990r...@gmail.comwrote: Hi, Thanks for the reply Aaron... There is no error stack! Just a single exception which says, terminate called after IllegalRequestException what(): Default TException. When I try to send the same amount of data from a single node to a single cassandra node, it works fine. But, when I split this data and send from multiple nodes to a single node, it results in this exception. I'm trying to run the same program(stores data) from multiple nodes to write to a single cassandra node. What all are the possible reasons for this exception? I don't think its the load, since if I send the same amount of data from a single node, it works fine. Is this correct? I am giving below the cassandra related code of my program. This same program should run on multiple nodes, but its not. I'm feeling I'm doing something fundamentally wrong since I'm aware that it's possible to store to a single cassandra node from multiple sources without using any locks(Locking isn't required right?). Here is the cassandra related code... char mycassa_host[20]; int mycassa_port(9160); const char *password(); const char *table_name(ovs_netflow_table); const char *context(ntopng_data); QtCassandra::QCassandra mycassa; int j; char str[1500]; //prompt user to enter the ip of the cassandra node... qDebug() Please enter the ip of the cassandra host: \n ; fscanf(stdin,%s, mycassa_host); qDebug() using host:port:: mycassa_host and port:9160\n ; if(!mycassa.connect(mycassa_host,mycassa_port,password)) //connecting to the cassandra cluster... { qDebug()\nSorry couldnt connect to the db\n; exit(1); } qDebug() Working on Cassandra Cluster Named mycassa.clusterName(); qDebug() Working on Cassandra Protocol Version mycassa.protocolVersion(); QSharedPointerQtCassandra::QCassandraContext thiscontext(mycassa.context(context)); try{ thiscontext-drop(); mycassa.synchronizeSchemaVersions(); } catch(...){ //ignore errors...this happens if the context doesn't exist yet... } thiscontext-setStrategyClass(SimpleStrategy); thiscontext-setReplicationFactor(1); QSharedPointerQtCassandra::QCassandraTable tableptr(thiscontext-table(table_name)); tableptr-setColumnType(Standard); tableptr-setComment(This is a store for netflows sent by OVS); tableptr-setKeyValidationClass(BytesType); tableptr-setDefaultValidationClass(BytesType); tableptr-setComparatorType(BytesType); tableptr-setKeyCacheSavePeriodInSeconds(14400); tableptr-setMemtableFlushAfterMins(60); tableptr-setGcGraceSeconds(3600); // 1h. tableptr-setMinCompactionThreshold(4); tableptr-setMaxCompactionThreshold(22); tableptr-setReplicateOnWrite(1); thiscontext-create(); mycassa.synchronizeSchemaVersions(); while(1) { //code for reading and storing a netflow packet from memory to a QByteArray bin; QtCassandra::QCassandraValue value(bin); QByteArray rowkey; rowkey.append((char)(i)); mycassa[ntopng_data][ovs_netflow_table][rowkey][col]= value; } Note that this same code runs in multiple systems. Could this be a problem? Thanks... On Thu, Nov 28, 2013 at 4:25 PM, Aaron Morton aa...@thelastpickle.comwrote: I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node Yes. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, What is the full error stack ? Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. On the client or the server ? Can you post the full error stack ? Currently using Cassandra 2.0.0 with libQtCassandra library. Please upgrade to 2.0.3. Cheers - Aaron Morton New Zealand
Re: Multiple writers writing to a cassandra node...
Hi, Thanks for the reply Aaron... There is no error stack! Just a single exception which says, terminate called after IllegalRequestException what(): Default TException. When I try to send the same amount of data from a single node to a single cassandra node, it works fine. But, when I split this data and send from multiple nodes to a single node, it results in this exception. I'm trying to run the same program(stores data) from multiple nodes to write to a single cassandra node. What all are the possible reasons for this exception? I don't think its the load, since if I send the same amount of data from a single node, it works fine. Is this correct? I am giving below the cassandra related code of my program. This same program should run on multiple nodes, but its not. I'm feeling I'm doing something fundamentally wrong since I'm aware that it's possible to store to a single cassandra node from multiple sources without using any locks(Locking isn't required right?). Here is the cassandra related code... char mycassa_host[20]; int mycassa_port(9160); const char *password(); const char *table_name(ovs_netflow_table); const char *context(ntopng_data); QtCassandra::QCassandra mycassa; int j; char str[1500]; //prompt user to enter the ip of the cassandra node... qDebug() Please enter the ip of the cassandra host: \n ; fscanf(stdin,%s, mycassa_host); qDebug() using host:port:: mycassa_host and port:9160\n ; if(!mycassa.connect(mycassa_host,mycassa_port,password)) //connecting to the cassandra cluster... { qDebug()\nSorry couldnt connect to the db\n; exit(1); } qDebug() Working on Cassandra Cluster Named mycassa.clusterName(); qDebug() Working on Cassandra Protocol Version mycassa.protocolVersion(); QSharedPointerQtCassandra::QCassandraContext thiscontext(mycassa.context(context)); try{ thiscontext-drop(); mycassa.synchronizeSchemaVersions(); } catch(...){ //ignore errors...this happens if the context doesn't exist yet... } thiscontext-setStrategyClass(SimpleStrategy); thiscontext-setReplicationFactor(1); QSharedPointerQtCassandra::QCassandraTable tableptr(thiscontext-table(table_name)); tableptr-setColumnType(Standard); tableptr-setComment(This is a store for netflows sent by OVS); tableptr-setKeyValidationClass(BytesType); tableptr-setDefaultValidationClass(BytesType); tableptr-setComparatorType(BytesType); tableptr-setKeyCacheSavePeriodInSeconds(14400); tableptr-setMemtableFlushAfterMins(60); tableptr-setGcGraceSeconds(3600); // 1h. tableptr-setMinCompactionThreshold(4); tableptr-setMaxCompactionThreshold(22); tableptr-setReplicateOnWrite(1); thiscontext-create(); mycassa.synchronizeSchemaVersions(); while(1) { //code for reading and storing a netflow packet from memory to a QByteArray bin; QtCassandra::QCassandraValue value(bin); QByteArray rowkey; rowkey.append((char)(i)); mycassa[ntopng_data][ovs_netflow_table][rowkey][col]= value; } Note that this same code runs in multiple systems. Could this be a problem? Thanks... On Thu, Nov 28, 2013 at 4:25 PM, Aaron Morton aa...@thelastpickle.comwrote: I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node Yes. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, What is the full error stack ? Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. On the client or the server ? Can you post the full error stack ? Currently using Cassandra 2.0.0 with libQtCassandra library. Please upgrade to 2.0.3. Cheers - Aaron Morton New Zealand @aaronmorton Co-Founder Principal Consultant Apache Cassandra Consulting http://www.thelastpickle.com On 26/11/2013, at 4:42 am, Krishna Chaitanya bnsk1990r...@gmail.com wrote: Hello, I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node. I have a packet collector software which runs in two different systems. I would like both of them to write the packets to a single node(same keyspace and columnfamily). Currently using Cassandra 2.0.0 with libQtCassandra library. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, the moment I try to store from the second system, but the second system works fine. When I restart the program on the first system, the second system gets the exception and the first one works fine. Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. Can someone
Re: Multiple writers writing to a cassandra node...
Hi, The exception occurs on the clients. The server is fine. FYI, I dont do any reads, only writes to cassandra. I re-run the experiment everytime after dropping all the created columnfamilies and key spaces. Thanks... On Sun, Dec 1, 2013 at 4:57 AM, Krishna Chaitanya bnsk1990r...@gmail.comwrote: Hi, Thanks for the reply Aaron... There is no error stack! Just a single exception which says, terminate called after IllegalRequestException what(): Default TException. When I try to send the same amount of data from a single node to a single cassandra node, it works fine. But, when I split this data and send from multiple nodes to a single node, it results in this exception. I'm trying to run the same program(stores data) from multiple nodes to write to a single cassandra node. What all are the possible reasons for this exception? I don't think its the load, since if I send the same amount of data from a single node, it works fine. Is this correct? I am giving below the cassandra related code of my program. This same program should run on multiple nodes, but its not. I'm feeling I'm doing something fundamentally wrong since I'm aware that it's possible to store to a single cassandra node from multiple sources without using any locks(Locking isn't required right?). Here is the cassandra related code... char mycassa_host[20]; int mycassa_port(9160); const char *password(); const char *table_name(ovs_netflow_table); const char *context(ntopng_data); QtCassandra::QCassandra mycassa; int j; char str[1500]; //prompt user to enter the ip of the cassandra node... qDebug() Please enter the ip of the cassandra host: \n ; fscanf(stdin,%s, mycassa_host); qDebug() using host:port:: mycassa_host and port:9160\n ; if(!mycassa.connect(mycassa_host,mycassa_port,password)) //connecting to the cassandra cluster... { qDebug()\nSorry couldnt connect to the db\n; exit(1); } qDebug() Working on Cassandra Cluster Named mycassa.clusterName(); qDebug() Working on Cassandra Protocol Version mycassa.protocolVersion(); QSharedPointerQtCassandra::QCassandraContext thiscontext(mycassa.context(context)); try{ thiscontext-drop(); mycassa.synchronizeSchemaVersions(); } catch(...){ //ignore errors...this happens if the context doesn't exist yet... } thiscontext-setStrategyClass(SimpleStrategy); thiscontext-setReplicationFactor(1); QSharedPointerQtCassandra::QCassandraTable tableptr(thiscontext-table(table_name)); tableptr-setColumnType(Standard); tableptr-setComment(This is a store for netflows sent by OVS); tableptr-setKeyValidationClass(BytesType); tableptr-setDefaultValidationClass(BytesType); tableptr-setComparatorType(BytesType); tableptr-setKeyCacheSavePeriodInSeconds(14400); tableptr-setMemtableFlushAfterMins(60); tableptr-setGcGraceSeconds(3600); // 1h. tableptr-setMinCompactionThreshold(4); tableptr-setMaxCompactionThreshold(22); tableptr-setReplicateOnWrite(1); thiscontext-create(); mycassa.synchronizeSchemaVersions(); while(1) { //code for reading and storing a netflow packet from memory to a QByteArray bin; QtCassandra::QCassandraValue value(bin); QByteArray rowkey; rowkey.append((char)(i)); mycassa[ntopng_data][ovs_netflow_table][rowkey][col]= value; } Note that this same code runs in multiple systems. Could this be a problem? Thanks... On Thu, Nov 28, 2013 at 4:25 PM, Aaron Morton aa...@thelastpickle.comwrote: I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node Yes. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, What is the full error stack ? Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. On the client or the server ? Can you post the full error stack ? Currently using Cassandra 2.0.0 with libQtCassandra library. Please upgrade to 2.0.3. Cheers - Aaron Morton New Zealand @aaronmorton Co-Founder Principal Consultant Apache Cassandra Consulting http://www.thelastpickle.com On 26/11/2013, at 4:42 am, Krishna Chaitanya bnsk1990r...@gmail.com wrote: Hello, I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node. I have a packet collector software which runs in two different systems. I would like both of them to write the packets to a single node(same keyspace and columnfamily). Currently using Cassandra 2.0.0 with libQtCassandra library. Currently, I am getting a IllegalRequestException, what (): Default TException
Re: Multiple writers writing to a cassandra node...
I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node Yes. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, What is the full error stack ? Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. On the client or the server ? Can you post the full error stack ? Currently using Cassandra 2.0.0 with libQtCassandra library. Please upgrade to 2.0.3. Cheers - Aaron Morton New Zealand @aaronmorton Co-Founder Principal Consultant Apache Cassandra Consulting http://www.thelastpickle.com On 26/11/2013, at 4:42 am, Krishna Chaitanya bnsk1990r...@gmail.com wrote: Hello, I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node. I have a packet collector software which runs in two different systems. I would like both of them to write the packets to a single node(same keyspace and columnfamily). Currently using Cassandra 2.0.0 with libQtCassandra library. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, the moment I try to store from the second system, but the second system works fine. When I restart the program on the first system, the second system gets the exception and the first one works fine. Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. Can someone please point out what I am doing wrong? Thanks in advance..
Multiple writers writing to a cassandra node...
Hello, I am a newbie to the Cassandra world. I would like to know if its possible for two different nodes to write to a single Cassandra node. I have a packet collector software which runs in two different systems. I would like both of them to write the packets to a single node(same keyspace and columnfamily). Currently using Cassandra 2.0.0 with libQtCassandra library. Currently, I am getting a IllegalRequestException, what (): Default TException on the first system, the moment I try to store from the second system, but the second system works fine. When I restart the program on the first system, the second system gets the exception and the first one works fine. Occasionally, also hitting frame size has negative value thrift exception when the traffic is high and packets are getting stored very fast. Can someone please point out what I am doing wrong? Thanks in advance..