You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Alex Zarutin (JIRA)" <ji...@apache.org> on 2013/08/08 03:19:48 UTC

[jira] [Commented] (CASSANDRA-5466) Compaction task eats 100% CPU for a long time for tables with collection typed columns

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

Alex Zarutin commented on CASSANDRA-5466:
-----------------------------------------

Tested on latest Cassandra-1.2 (1.2.8) using the reproduction steps attached:

Short time CPU peak during the compaction task running:

Wed Aug  7 17:56:36 PDT 2013
pending tasks: 1
          compaction type        keyspace   column family       completed           total      unit  progress
               Compaction       Keyspace1            test        88704036       143494491     bytes    61.82%
Active compaction remaining time :   0h00m03s

After which CPU came back to zero.

Number of the writes: ~ 1.8M:

$ /Users/alexzarutin/.ccm/repository/1.2.4/bin/nodetool  --host localhost --port 7100 cfstats | grep -A 10 'Keyspace1'
Keyspace: Keyspace1
        Read Count: 0
        Read Latency: NaN ms.
        Write Count: 1783789
        Write Latency: 0.15905207005985575 ms.
        Pending Tasks: 0
                Column Family: Counter1
                SSTable count: 0
                Space used (live): 0
                Space used (total): 0
                Number of Keys (estimate): 0



                
> Compaction task eats 100% CPU for a long time for tables with collection typed columns
> --------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5466
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5466
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.4
>         Environment: ubuntu 12.10, sun-6-java 1.6.0.37, Core-i7, 8GB RAM
>            Reporter: Alexey Tereschenko
>            Assignee: Alex Zarutin
>         Attachments: CASSANDRA-5466.txt, Cassandra_JDBC_Updater.tar.gz, logs-system-cass-5466-output-30-threads-1386752-req-Default-LCS.log, logs-system-cass-5466-output-30-threads-1578752-req-LeveledCompactionStrategy.log, nodetool-compactionstats-cass-5466-output-30-threads-1386752-req-Default-LCS.log, nodetool-compactionstats-cass-5466-output-30-threads-1578752-req-LeveledCompactionStrategy.log
>
>
> For the table:
> {code:sql}
> create table test (
>         user_id bigint,
>         first_list list<bigint>,
>         second_list list<bigint>,
>         third_list list<bigint>,
>         PRIMARY KEY (user_id)
> );
> {code}
> I do thousands of updates like the following:
> {code:sql}
> UPDATE test SET first_list = [1], second_list = [2], third_list = [3] WHERE user_id = ?;
> {code}
> In several minutes a compaction task starts running. {{nodetool compactionstats}} shows that remaining time is 2 seconds but in fact it can take hours to really complete the compaction tasks. And during that time Cassandra consumes 100% of CPU and slows down so significally that it gives connection timeout exceptions to any client code trying to establish connection with Cassandra. This happens only with tables with collection typed columns.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira