cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Baranov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-8530) Query on a secondary index creates huge CPU spike + unable to trace
Date Mon, 22 Dec 2014 16:13:13 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-8530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14255884#comment-14255884
] 

Pavel Baranov commented on CASSANDRA-8530:
------------------------------------------

Providing a self-contained script would be tough right now. I can describe what we've done
so far:
1. tweets table was create under Cassandra 2.0.10
2. currently there are 6 nodes in the cluster, total storage usage is 3.3TB with an avg. data
size of 401GB per node.
3. until recently we were using a python script that does very simple selects (on secondary
index, like I've posted in the original ticket) and also deletes based on primary key (this
was done once a month, and on a small volume, nothing intense). All of a sudden, same queries
and same process started giving the following message:
{noformat}
code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation
timed out - received only 0 responses." info={'received_responses': 0, 'required_responses':
1, 'consistency': 'ONE'}
{noformat}
and accompanied by huge cpu spikes (load avg went from ~2 to about ~15)

4. We figured maybe it's time to upgrade, so we did to 2.1.2 - did not help.
5. after upgrading, the secondary indexes didn't work at all, so I ran "nodetool sstableupgrade"
which fixed it but the issue remained.
6. tried removing and reCreating indexes - didn't help
7. did couple of rolling cluster restarts - didn't help
8. unable to see the trace info with "tracing on", however, tracing info appears on queries
on primary index or without WHERE clause at all.
9. insertions are still coming in and do not trigger any cpu spikes.

The only this that shows up in the system.log is:
{noformat}
WARN  [SharedPool-Worker-1] 2014-12-22 08:07:54,953 BatchStatement.java:255 - Batch of prepared
statements for [tweets.tweets] is of size 35434, exceeding specified threshold of 5120 by
30314.
{noformat}
and that's not even after running the "bad" queries, so I don't even know where else to look
for abnormalities...

Please let me know if there is anything I can do/provide. 
Thank you!

> Query on a secondary index creates huge CPU spike + unable to trace
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-8530
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8530
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API, Core
>         Environment: CentOs 6.5 / Cassandra 2.1.2
>            Reporter: Pavel Baranov
>
> After upgrading cassandra from 2.0.10 to 2.1.2 we are having all kinds of issues, especially
with performance.
> java version "1.7.0_65"
> Table creation:
> {noformat}
> tweets> desc table tweets;
> CREATE TABLE tweets.tweets (
>     uname text,
>     tweet_id bigint,
>     tweet text,
>     tweet_date timestamp,
>     tweet_date_only text,
>     uid bigint,
>     PRIMARY KEY (uname, tweet_id)
> ) WITH CLUSTERING ORDER BY (tweet_id ASC)
>     AND bloom_filter_fp_chance = 0.01
>     AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
>     AND comment = ''
>     AND compaction = {'min_threshold': '10', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
'max_threshold': '32'}
>     AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
>     AND dclocal_read_repair_chance = 0.0
>     AND default_time_to_live = 0
>     AND gc_grace_seconds = 864000
>     AND max_index_interval = 2048
>     AND memtable_flush_period_in_ms = 0
>     AND min_index_interval = 128
>     AND read_repair_chance = 0.1
>     AND speculative_retry = '99.0PERCENTILE';
> CREATE INDEX tweets_tweet_date_only_idx ON tweets.tweets (tweet_date_only);
> CREATE INDEX tweets_uid ON tweets.tweets (uid);
> {noformat}
> With Cassandra 2.0.10 this query:
> {noformat}
> select uname from tweets where uid = 636732672 limit 1;
> {noformat}
> did not have any issues. After upgrade, I can see the cpu spikes and load avg goes from
~1 to ~13, especially if I execute the query over and over again.
> Doing "tracing on" does not work and just returns: 
> "Statement trace did not complete within 10 seconds"
> I've done:
> nodetool upgradesstables
> recreated indexes



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message