You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "amorton (JIRA)" <ji...@apache.org> on 2012/12/20 05:07:12 UTC

[jira] [Created] (CASSANDRA-5079) Compaction deletes ExpiringColumns in Secondary Indexes

amorton created CASSANDRA-5079:
----------------------------------

             Summary: Compaction deletes ExpiringColumns in Secondary Indexes
                 Key: CASSANDRA-5079
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5079
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.0 rc1, 1.1.7
            Reporter: amorton
            Assignee: amorton


>From this discussion http://www.mail-archive.com/user@cassandra.apache.org/msg26599.html

CompactionManager.getDefaultGcBefore() set's the gc_before to be Integer.MAX_VALUE. 

In the example all entries in the secondary index have a TTL. In PreCompactedRow.removeDeletedAndOldShards() the CF is determined to have irrelevant data, the call to CFS.removeDeleted() results in the ExpiringColumns being removed and the row is treated as empty. CompactionTask.execute() exits at the {{if (!nni.hasNext())}} test, so the sstables are marked as compacted and soon deleted. 

In the example the localDeletionTime was Thu, 21 Mar 2013 08:25:22 GMT and should not have been purged. 

In the example when the first compaction on the secondary index runs the on disk data for the index is deleted. The logs show a compaction starting and no associated "Compacted to" message from that compaction thread. 

The impact is incorrect results from secondary indexes queries.

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