[
https://issues.apache.org/jira/browse/CASSANDRA-5151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13557415#comment-13557415
]
Yuki Morishita commented on CASSANDRA-5151:
-------------------------------------------
Yes.
Storing compaction log in system keyspace can be done without problem.
But when the node starts up and tries to eliminate left overs based on query
result from compaction log, there is a problem.
For example, the node goes down leaving system.schema_keyspaces' compaction
unfinished and both original sstable(A) and produced sstable(A') remained in
data dir. What we want when node restarts is that schema_keyspaces only
references A and discards A'.
So we query compaction log from system ks to determine which sstables are left
overs. But when we query system ks, cassandra opens whole columnfamilies under
system ks, and schema_keyspaces already references both A and A' at this time.
So even though we get the query result, we cannot do anything further.
> 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.1
>
> Attachments: 5151-1.2.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