You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vitalii Ishchenko (JIRA)" <ji...@apache.org> on 2018/12/21 15:13:00 UTC
[jira] [Created] (CASSANDRA-14944) Tombstones are not removed if
bloom filter is turned off
Vitalii Ishchenko created CASSANDRA-14944:
---------------------------------------------
Summary: Tombstones are not removed if bloom filter is turned off
Key: CASSANDRA-14944
URL: https://issues.apache.org/jira/browse/CASSANDRA-14944
Project: Cassandra
Issue Type: Bug
Components: Compaction
Reporter: Vitalii Ishchenko
Well actually they are deleted, but not always even though they should, because check is done using Index of overlapped tables
When purge evaluator is constructed we are checking overlapping tables using bloom filter, but when it is disabled we are checking against index, but if condition is not properly constructed and we still check bloom filter which is AlwaysPresentFilter and every overlapping sstable is used to get minTimestamp and tombstones, that have their timestamp >= minTimestamp won't be deleted
{code:java}
if (sstable.getBloomFilter() instanceof AlwaysPresentFilter && sstable.getPosition(key, SSTableReader.Operator.EQ, false) != null
|| sstable.getBloomFilter().isPresent(key))
{
{code}
Should be something like this
{code:java}
boolean mightBePresentInTable = sstable.getBloomFilter() instanceof AlwaysPresentFilter ? sstable.getPosition(key, SSTableReader.Operator.EQ, false) != null : sstable.getBloomFilter().isPresent(key)
{code}
Code pointers in 3.11 [https://github.com/apache/cassandra/blob/08363afa5354c00a7ecd62fe273c392a678db28a/src/java/org/apache/cassandra/db/compaction/CompactionController.java#L274] and 4.0 [https://github.com/apache/cassandra/blob/11384c3279a66e6c0fb7861e2b188b25e963580f/src/java/org/apache/cassandra/db/compaction/CompactionController.java#L281]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org