Write row A, flush into sstable 1
Delete row A, flush the tombstone into sstable 2

The tombstone in sstable 2 can’t be removed until row A in sstable 1 gets 
removed. If you just keep recompacting sstable 2 by itself, the row in sstable 
A remains on disk.



-- 
Jeff Jirsa


> On Sep 26, 2017, at 2:01 AM, shalom sagges <shalomsag...@gmail.com> wrote:
> 
> Thanks Jeff!
> 
> I'll try that. 
> I'm not sure I understand how the tombstones are covering data in another 
> file. Do you have a small example perhaps?
> 
> Thanks again!
> 
>> On Tue, Sep 26, 2017 at 1:38 AM, Jeff Jirsa <jji...@gmail.com> wrote:
>> The problem is likely that your sstables overlap - your 91% droppable 
>> tombstones are probably covering data in another file. Until that data is 
>> removed, those tombstones cant be dropped.
>> 
>> This is why a full major compaction often works better for simply reclaiming 
>> disk space (though it takes a lot more disk as it runs and has other 
>> drawbacks) - it joins the shadowed data with the tombstones into a single 
>> file. You can sorta fake that by using user-defined compaction with multiple 
>> sstables to try to compact away the shadowed data - pick 2 or more -Data 
>> files and compact them together. Works best if you can be sure which data is 
>> overlapping, but short of that you'll probably want to pick data with 
>> approximately the same (or older) calendar timestamps.
>> 
>> 
>> 
>>> On Mon, Sep 25, 2017 at 11:10 AM, shalom sagges <shalomsag...@gmail.com> 
>>> wrote:
>>> Hi Everyone, 
>>> 
>>> I'm running into an issue I can't seem to Solve. 
>>> 
>>> I execute force compaction in order to reclaim back storage. 
>>> Everything was working fine for a time, but after a while I found that 
>>> tombstones aren't being removed any longer. 
>>> 
>>> For example, I've compacted the following SSTable:
>>> 21G Sep 19 10:18 file-jb-69103-Data.db
>>> Estimated droppable tombstones: 0.9115601492568154
>>> 
>>> I ran it with jmxterm and the compaction started and completed 
>>> successfully. 
>>>  $>run -b org.apache.cassandra.db:type=CompactionManager 
>>> forceUserDefinedCompaction file-jb-69103-Data.db
>>>  #calling operation forceUserDefinedCompaction of mbean 
>>> org.apache.cassandra.db:type=CompactionManager
>>>  #operation returns: 
>>> null
>>> 
>>> 
>>> A new SStable was created, but no tombstones were removed. 
>>>  21G Sep 25 12:16 file-jb-71319-Data.db
>>>  Estimated droppable tombstones: 0.9115601492568154
>>> 
>>> I've tried running it from jconsole as well, but the outcome was the same. 
>>> 
>>> Is anyone familiar with this issue? 
>>> Btw, this cluster is on version 2.0.14 . 
>>> 
>>> 
>>> Thanks!
>>> Shalom
>>> 
>> 
> 

Reply via email to