Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
Description
In ColumnFamilyStore.createCompactionWriter() we have (for each sstable compacted):
sstableMetadataCollector.updateMinTimestamp(sstable.getMinTimestamp()); sstableMetadataCollector.updateMaxTimestamp(sstable.getMaxTimestamp());
This means that the compacted sstable min (resp. max) timestamp can't be bigger (resp. smaller) than the min (resp. max) timestamp of the sstable used to create it. However, not only can't I find a reason for that, but I think this makes collecting very imprecise (not to say broken). Namely, we'll keep the lowest timestamp we have ever seen, which doesn't take overwrite into account. This also doesn't take deletes into account, and perhaps more importantly, this doesn't take LCS into account.