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

Yuki Morishita commented on CASSANDRA-5151:
-------------------------------------------

I think there is concurrency problem in opening ColumnFamilyStore and 
deleting/scrubbing SSTables.

This static 
block(https://github.com/apache/cassandra/blob/cassandra-1.2.1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java#L88)
 schedules MeteredFlusher which accesses all ColumnFamilyStore when it runs 
every 1 sec. Scheduling is done when JVM first load ColumnFamilyStore class, so 
after that, there is always a chance to open SSTables before doing scrub 
directory/remove compaction left overs.
We should move the content of static block at the end of CassandraDaemon setup.
                
> Implement better way of eliminating compaction left overs.
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-5151
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5151
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.1.3
>            Reporter: Yuki Morishita
>            Assignee: Yuki Morishita
>             Fix For: 1.2.2
>
>         Attachments: 5151-1.2.txt, 5151-v2.txt
>
>
> This is from discussion in CASSANDRA-5137. Currently we skip loading SSTables 
> that are left over from incomplete compaction to not over-count counter, but 
> the way we track compaction completion is not secure.
> One possible solution is to create system CF like:
> {code}
> create table compaction_log (
>   id uuid primary key,
>   inputs set<int>,
>   outputs set<int>
> );
> {code}
> to track incomplete compaction.

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