[ 
https://issues.apache.org/jira/browse/CASSANDRA-4781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuki Morishita updated CASSANDRA-4781:
--------------------------------------

    Attachment: 4781.txt

I found the cause of this recursive compaction.

We calculate how many columns in sstable are expected to be dropped, and if 
that exceeds threshold we do single sstable compaction. Cassandra does not drop 
tombstones when overlapping keys exist in other sstables, so when we have 
overlap, we calculate what percentage of columns that do not belong to 
overlapped keys can be dropped.
Here we use sstable.estimatedKeys to calculate, but since the value comes from 
index interval and index summary, we have chance to calculate wrong value if 
the number of keys in sstable is small, like in this case, schema_columns. 
(schema_columns also has lot of overlapped keys among sstable since its key is 
Keyspace name.)

So I propose to skip single sstable compaction if sstable contains small number 
of keys.
Patch is attached for this.
                
> Sometimes Cassandra starts compacting system-shema_columns cf repeatedly 
> until the node is killed
> -------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-4781
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4781
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.2.0 beta 1
>         Environment: Ubuntu 12.04, single-node Cassandra cluster
>            Reporter: Aleksey Yeschenko
>            Assignee: Yuki Morishita
>         Attachments: 4781.txt
>
>
> Cassandra starts flushing system-schema_columns cf in a seemingly infinite 
> loop:
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,804 CompactionTask.java 
> (line 239) Compacted to 
> [/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32107-Data.db,].
>   3,827 to 3,827 (~100% of original) bytes for 3 keys at 0.202762MB/s.  Time: 
> 18ms.
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,804 CompactionTask.java 
> (line 119) Compacting 
> [SSTableReader(path='/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32107-Data.db')]
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,824 CompactionTask.java 
> (line 239) Compacted to 
> [/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32108-Data.db,].
>   3,827 to 3,827 (~100% of original) bytes for 3 keys at 0.182486MB/s.  Time: 
> 20ms.
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,825 CompactionTask.java 
> (line 119) Compacting 
> [SSTableReader(path='/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32108-Data.db')]
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,864 CompactionTask.java 
> (line 239) Compacted to 
> [/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32109-Data.db,].
>   3,827 to 3,827 (~100% of original) bytes for 3 keys at 0.096045MB/s.  Time: 
> 38ms.
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,864 CompactionTask.java 
> (line 119) Compacting 
> [SSTableReader(path='/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32109-Data.db')]
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,894 CompactionTask.java 
> (line 239) Compacted to 
> [/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32110-Data.db,].
>   3,827 to 3,827 (~100% of original) bytes for 3 keys at 0.121657MB/s.  Time: 
> 30ms.
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,894 CompactionTask.java 
> (line 119) Compacting 
> [SSTableReader(path='/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32110-Data.db')]
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,914 CompactionTask.java 
> (line 239) Compacted to 
> [/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32111-Data.db,].
>   3,827 to 3,827 (~100% of original) bytes for 3 keys at 0.202762MB/s.  Time: 
> 18ms.
>  INFO [CompactionExecutor:7] 2012-10-09 17:55:46,914 CompactionTask.java 
> (line 119) Compacting 
> [SSTableReader(path='/var/lib/cassandra/data/system/schema_columns/system-schema_columns-ia-32111-Data.db')]
> .........
> Don't know what's causing it. Don't know a way to predictably trigger this 
> behaviour. It just happens sometimes.

--
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

Reply via email to