Hello, After noticing that automatic tombstone removal (CASSANDRA-3442) was not working in an append-only STCS CF with 40% of droppable tombstone ratio I investigated why the compaction was not being triggered in the largest SSTable with 16GB and about 70% droppable tombstone ratio.
When the code goes to check if the SSTable is candidate to be compacted (AbstractCompactionStrategy.worthDroppingTombstones), it verifies if all the others SSTables overlap with the current SSTable by checking if the start and end tokens overlap. The problem is that all SSTables contain pretty much the whole node token range, so all of them overlap nearly all the time, so the automatic tombstone removal never happens. Is there any case in STCS where all sstables token ranges DO NOT overlap? I understand during the tombstone removal process it's necessary to verify if the compacted row exists in any other SSTable, but I don't understand why it's necessary to verify if the token ranges overlap to decide if a tombstone compaction must be executed on a single SSTable with high droppable tombstone ratio. Any clarification would be kindly appreciated. PS: Cassandra version: 1.2.16 -- *Paulo Motta* Chaordic | *Platform* *www.chaordic.com.br <http://www.chaordic.com.br/>* +55 48 3232.3200