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.com>wrote: > >> 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(); >> >> QSharedPointer<QtCassandra::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); >> >> QSharedPointer<QtCassandra::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.com>wrote: >> >>> 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.. >>> >>> >>> >> >> >> -- >> Regards, >> BNSK >> *. * >> > > > > -- > Regards, > BNSK > *. * > > >