Re: Multiple writers writing to a cassandra node...

2013-12-08 Thread Krishna Chaitanya
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...

2013-12-01 Thread Krishna Chaitanya
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...

2013-12-01 Thread Krishna Chaitanya
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...

2013-11-28 Thread Aaron Morton
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...

2013-11-25 Thread Krishna Chaitanya
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..