Re: error deleting messages

2015-03-24 Thread Ali Akhtar
50100 inserts or deletes? also how much ram / cpu do you have on the server
running this, and what's the ram / cpu usage at about the time it fails?

On Tue, Mar 24, 2015 at 5:29 PM, joss Earl j...@rareformnewmedia.com
wrote:

 on a stock install, it gets to about 50100 before grinding to a halt



 On 24 March 2015 at 12:19, Ali Akhtar ali.rac...@gmail.com wrote:

 What happens when you run it? How far does it get before stopping?

 On Tue, Mar 24, 2015 at 5:13 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 sure: https://gist.github.com/joss75321/7d85e4c75c06530e9d80

 On 24 March 2015 at 12:04, Ali Akhtar ali.rac...@gmail.com wrote:

 Can you put your code on gist.github.com or pastebin?

 On Tue, Mar 24, 2015 at 4:58 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 I run into trouble after a while if I delete rows, this happens in
 both 2.1.3 and 2.0.13, and I encountered the same problem when using 
 either
 the datastax java driver or the stock python driver.
 The problem is reproducible using the attached python program.

 Once the problem is encountered, the table becomes unusable..

 cqlsh:test1 select id from msg limit 1;
 Request did not complete within rpc_timeout.

 So, questions are:
 am I doing something wrong ?
 is this expected behaviour ?
 is there some way to fix the table and make it usable again once this
 has happened ?
 if this is a bug, what is the best way of reporting it ?

 Many thanks
 Joss








Re: error deleting messages

2015-03-24 Thread Anuj Wadehra
Hi Joss


We faced similar issue recently. The problem seems to be related to huge number 
of tombstones generated after deletion. I would suggest you to increase 
tombstone warning and failure threshold in cassandra.yaml.


Once you do that and run your program make sure that you monitor Cassandra Heap 
usage using nodetool info command. If heap is near full Cassandra halts are 
obvious. So you need to increase heap.


Due to increased tombstones your query is unable to complete within short 
time..I would suggest increasing read timeout in cassandra.yaml so that query 
may complete.

Please look at your logs to make sure that there are no exception.


Thanks

Anuj Wadehra


From:joss Earl j...@rareformnewmedia.com
Date:Tue, 24 Mar, 2015 at 6:17 pm
Subject:Re: error deleting messages

It inserts 100,000 messages, I then start deleting the messages by grabbing 
chunks of 100 at a time and then individually deleting each message.


So, the 100,000 messages get inserted without any trouble, I run into trouble 
when I have deleted about half of them. I've run this on machines with 4,8, and 
16gig of ram and behaviour was consistent (I fail after 5 or so messages on 
that table, or maybe 30,000 messages on a table with more columns).




On 24 March 2015 at 12:35, Ali Akhtar ali.rac...@gmail.com wrote:

50100 inserts or deletes? also how much ram / cpu do you have on the server 
running this, and what's the ram / cpu usage at about the time it fails?


On Tue, Mar 24, 2015 at 5:29 PM, joss Earl j...@rareformnewmedia.com wrote:

on a stock install, it gets to about 50100 before grinding to a halt




On 24 March 2015 at 12:19, Ali Akhtar ali.rac...@gmail.com wrote:

What happens when you run it? How far does it get before stopping?


On Tue, Mar 24, 2015 at 5:13 PM, joss Earl j...@rareformnewmedia.com wrote:

sure: https://gist.github.com/joss75321/7d85e4c75c06530e9d80


On 24 March 2015 at 12:04, Ali Akhtar ali.rac...@gmail.com wrote:

Can you put your code on gist.github.com or pastebin?


On Tue, Mar 24, 2015 at 4:58 PM, joss Earl j...@rareformnewmedia.com wrote:

I run into trouble after a while if I delete rows, this happens in both 2.1.3 
and 2.0.13, and I encountered the same problem when using either the datastax 
java driver or the stock python driver.

The problem is reproducible using the attached python program.


Once the problem is encountered, the table becomes unusable..


cqlsh:test1 select id from msg limit 1;

Request did not complete within rpc_timeout.


So, questions are:

am I doing something wrong ?

is this expected behaviour ?

is there some way to fix the table and make it usable again once this has 
happened ?

if this is a bug, what is the best way of reporting it ?


Many thanks

Joss









Re: error deleting messages

2015-03-24 Thread joss Earl
Hi Anuj

Yes, thanks.. looking at my log file I see:

ERROR [SharedPool-Worker-2] 2015-03-24 13:52:06,751
SliceQueryFilter.java:218 - Scanned over 10 tombstones in test1.msg;
query aborted (see tombstone_\
failure_threshold)
WARN  [SharedPool-Worker-2] 2015-03-24 13:52:06,759
AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread
Thread[SharedPool-Worker-2\
,5,main]: {}
java.lang.RuntimeException:
org.apache.cassandra.db.filter.TombstoneOverwhelmingException

I'm reading up about how to deal with this now, thanks..

On 24 March 2015 at 13:16, Anuj Wadehra anujw_2...@yahoo.co.in wrote:

 Hi Joss

 We faced similar issue recently. The problem seems to be related to huge
 number of tombstones generated after deletion. I would suggest you to
 increase tombstone warning and failure threshold in cassandra.yaml.

 Once you do that and run your program make sure that you monitor Cassandra
 Heap usage using nodetool info command. If heap is near full Cassandra
 halts are obvious. So you need to increase heap.

 Due to increased tombstones your query is unable to complete within short
 time..I would suggest increasing read timeout in cassandra.yaml so that
 query may complete.

 Please look at your logs to make sure that there are no exception.

 Thanks
 Anuj Wadehra


 --
   *From*:joss Earl j...@rareformnewmedia.com
 *Date*:Tue, 24 Mar, 2015 at 6:17 pm
 *Subject*:Re: error deleting messages

 It inserts 100,000 messages, I then start deleting the messages by
 grabbing chunks of 100 at a time and then individually deleting each
 message.

 So, the 100,000 messages get inserted without any trouble, I run into
 trouble when I have deleted about half of them. I've run this on machines
 with 4,8, and 16gig of ram and behaviour was consistent (I fail after 5
 or so messages on that table, or maybe 30,000 messages on a table with more
 columns).



 On 24 March 2015 at 12:35, Ali Akhtar ali.rac...@gmail.com wrote:

 50100 inserts or deletes? also how much ram / cpu do you have on the
 server running this, and what's the ram / cpu usage at about the time it
 fails?

 On Tue, Mar 24, 2015 at 5:29 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 on a stock install, it gets to about 50100 before grinding to a halt



 On 24 March 2015 at 12:19, Ali Akhtar ali.rac...@gmail.com wrote:

 What happens when you run it? How far does it get before stopping?

 On Tue, Mar 24, 2015 at 5:13 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 sure: https://gist.github.com/joss75321/7d85e4c75c06530e9d80

 On 24 March 2015 at 12:04, Ali Akhtar ali.rac...@gmail.com wrote:

 Can you put your code on gist.github.com or pastebin?

 On Tue, Mar 24, 2015 at 4:58 PM, joss Earl j...@rareformnewmedia.com
  wrote:

 I run into trouble after a while if I delete rows, this happens in
 both 2.1.3 and 2.0.13, and I encountered the same problem when using 
 either
 the datastax java driver or the stock python driver.
 The problem is reproducible using the attached python program.

 Once the problem is encountered, the table becomes unusable..

 cqlsh:test1 select id from msg limit 1;
 Request did not complete within rpc_timeout.

 So, questions are:
 am I doing something wrong ?
 is this expected behaviour ?
 is there some way to fix the table and make it usable again once
 this has happened ?
 if this is a bug, what is the best way of reporting it ?

 Many thanks
 Joss










Re: error deleting messages

2015-03-24 Thread joss Earl
It inserts 100,000 messages, I then start deleting the messages by grabbing
chunks of 100 at a time and then individually deleting each message.

So, the 100,000 messages get inserted without any trouble, I run into
trouble when I have deleted about half of them. I've run this on machines
with 4,8, and 16gig of ram and behaviour was consistent (I fail after 5
or so messages on that table, or maybe 30,000 messages on a table with more
columns).



On 24 March 2015 at 12:35, Ali Akhtar ali.rac...@gmail.com wrote:

 50100 inserts or deletes? also how much ram / cpu do you have on the
 server running this, and what's the ram / cpu usage at about the time it
 fails?

 On Tue, Mar 24, 2015 at 5:29 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 on a stock install, it gets to about 50100 before grinding to a halt



 On 24 March 2015 at 12:19, Ali Akhtar ali.rac...@gmail.com wrote:

 What happens when you run it? How far does it get before stopping?

 On Tue, Mar 24, 2015 at 5:13 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 sure: https://gist.github.com/joss75321/7d85e4c75c06530e9d80

 On 24 March 2015 at 12:04, Ali Akhtar ali.rac...@gmail.com wrote:

 Can you put your code on gist.github.com or pastebin?

 On Tue, Mar 24, 2015 at 4:58 PM, joss Earl j...@rareformnewmedia.com
 wrote:

 I run into trouble after a while if I delete rows, this happens in
 both 2.1.3 and 2.0.13, and I encountered the same problem when using 
 either
 the datastax java driver or the stock python driver.
 The problem is reproducible using the attached python program.

 Once the problem is encountered, the table becomes unusable..

 cqlsh:test1 select id from msg limit 1;
 Request did not complete within rpc_timeout.

 So, questions are:
 am I doing something wrong ?
 is this expected behaviour ?
 is there some way to fix the table and make it usable again once this
 has happened ?
 if this is a bug, what is the best way of reporting it ?

 Many thanks
 Joss









Re: error deleting messages

2015-03-24 Thread James Schappet
This talk from DataStax was talking about deletes as an Anti-pattern.  It may 
be worth watching.

 Thanks for your interest in the following webinar:
 
 Avoiding anti-patterns: How to stay in love with Cassandra
  
 Here are the links to the video recording and presentation slides.
  
 Thanks,
  
 The DataStax Team

On Mar 24, 2015, at 9:09 AM, joss Earl j...@rareformnewmedia.com wrote:

 Hi Anuj
 
 Yes, thanks.. looking at my log file I see:
 
 ERROR [SharedPool-Worker-2] 2015-03-24 13:52:06,751 SliceQueryFilter.java:218 
 - Scanned over 10 tombstones in test1.msg; query aborted (see tombstone_\
 failure_threshold)
 WARN  [SharedPool-Worker-2] 2015-03-24 13:52:06,759 
 AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
 Thread[SharedPool-Worker-2\
 ,5,main]: {}
 java.lang.RuntimeException: 
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 
 I'm reading up about how to deal with this now, thanks..
 
 On 24 March 2015 at 13:16, Anuj Wadehra anujw_2...@yahoo.co.in wrote:
 Hi Joss
 
 We faced similar issue recently. The problem seems to be related to huge 
 number of tombstones generated after deletion. I would suggest you to 
 increase tombstone warning and failure threshold in cassandra.yaml.
 
 Once you do that and run your program make sure that you monitor Cassandra 
 Heap usage using nodetool info command. If heap is near full Cassandra halts 
 are obvious. So you need to increase heap.
 
 Due to increased tombstones your query is unable to complete within short 
 time..I would suggest increasing read timeout in cassandra.yaml so that query 
 may complete.
 
 Please look at your logs to make sure that there are no exception.
 
 Thanks
 Anuj Wadehra
 
 
 From:joss Earl j...@rareformnewmedia.com
 Date:Tue, 24 Mar, 2015 at 6:17 pm
 Subject:Re: error deleting messages
 
 It inserts 100,000 messages, I then start deleting the messages by grabbing 
 chunks of 100 at a time and then individually deleting each message.
 
 So, the 100,000 messages get inserted without any trouble, I run into trouble 
 when I have deleted about half of them. I've run this on machines with 4,8, 
 and 16gig of ram and behaviour was consistent (I fail after 5 or so 
 messages on that table, or maybe 30,000 messages on a table with more 
 columns).
 
 
 
 On 24 March 2015 at 12:35, Ali Akhtar ali.rac...@gmail.com wrote:
 50100 inserts or deletes? also how much ram / cpu do you have on the server 
 running this, and what's the ram / cpu usage at about the time it fails?
 
 On Tue, Mar 24, 2015 at 5:29 PM, joss Earl j...@rareformnewmedia.com wrote:
 on a stock install, it gets to about 50100 before grinding to a halt
 
 
 
 On 24 March 2015 at 12:19, Ali Akhtar ali.rac...@gmail.com wrote:
 What happens when you run it? How far does it get before stopping?
 
 On Tue, Mar 24, 2015 at 5:13 PM, joss Earl j...@rareformnewmedia.com wrote:
 sure: https://gist.github.com/joss75321/7d85e4c75c06530e9d80
 
 On 24 March 2015 at 12:04, Ali Akhtar ali.rac...@gmail.com wrote:
 Can you put your code on gist.github.com or pastebin?
 
 On Tue, Mar 24, 2015 at 4:58 PM, joss Earl j...@rareformnewmedia.com wrote:
 I run into trouble after a while if I delete rows, this happens in both 2.1.3 
 and 2.0.13, and I encountered the same problem when using either the datastax 
 java driver or the stock python driver.
 The problem is reproducible using the attached python program.
 
 Once the problem is encountered, the table becomes unusable..
 
 cqlsh:test1 select id from msg limit 1;
 Request did not complete within rpc_timeout.
 
 So, questions are:
 am I doing something wrong ?
 is this expected behaviour ?
 is there some way to fix the table and make it usable again once this has 
 happened ?
 if this is a bug, what is the best way of reporting it ?
 
 Many thanks
 Joss
 
 
 
 
 
 
 



Re: error deleting messages

2015-03-24 Thread Duncan Sands

Hi Joss,

On 24/03/15 12:58, joss Earl wrote:

I run into trouble after a while if I delete rows, this happens in both 2.1.3
and 2.0.13, and I encountered the same problem when using either the datastax
java driver or the stock python driver.
The problem is reproducible using the attached python program.

Once the problem is encountered, the table becomes unusable..

cqlsh:test1 select id from msg limit 1;
Request did not complete within rpc_timeout.


my guess is that due to previous delete attempts your table is filled with 
tombstones, and this is why the read times out: it hits the tombstone limit. 
Check your Cassandra node logs to see if they mention tombstones.


Ciao, Duncan.



So, questions are:
am I doing something wrong ?
is this expected behaviour ?
is there some way to fix the table and make it usable again once this has 
happened ?
if this is a bug, what is the best way of reporting it ?

Many thanks
Joss




error deleting messages

2015-03-24 Thread joss Earl
I run into trouble after a while if I delete rows, this happens in both
2.1.3 and 2.0.13, and I encountered the same problem when using either the
datastax java driver or the stock python driver.
The problem is reproducible using the attached python program.

Once the problem is encountered, the table becomes unusable..

cqlsh:test1 select id from msg limit 1;
Request did not complete within rpc_timeout.

So, questions are:
am I doing something wrong ?
is this expected behaviour ?
is there some way to fix the table and make it usable again once this has
happened ?
if this is a bug, what is the best way of reporting it ?

Many thanks
Joss
from cassandra.cluster import Cluster
cluster = Cluster()
session = cluster.connect()

num_msgs = 10 

# session.execute(DROP KEYSPACE test1 IF EXISTS test1;)
session.execute(CREATE KEYSPACE test1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};)
session.execute(CREATE TABLE test1.msg ( 
 author	text, 
 id timeuuid,
 txttext,
 PRIMARY KEY (author,id)
) WITH CLUSTERING ORDER BY (id DESC);)



fetch_st = session.prepare(SELECT id,author,txt FROM test1.msg WHERE author=? limit 100);
insert_st = session.prepare(INSERT INTO test1.msg(id,author,txt) VALUES(now(),?,?));
del_st = session.prepare(DELETE FROM test1.msg where author=? and id=?);

author = some author

for i in range(0,num_msgs):
  session.execute(insert_st, [author,some message  + str(i)])

msgs = session.execute(fetch_st,[author])
deleted = 0
while len(msgs)  0:
  for m in msgs:
session.execute(del_st,[author,m[0]])
  deleted += len(msgs)
  print deleted  + str(deleted)
  msgs = session.execute(fetch_st,[author])