Javadoc
Replacing compacted sstables is atomic as far as observers of DataTracker are concerned, but not on the
filesystem: first the new sstables are renamed to "live" status (i.e., the tmp marker is removed), then
their ancestors are removed.
If an unclean shutdown happens at the right time, we can thus end up with both the new ones and their
ancestors "live" in the system. This is harmless for normal data, but for counters it can cause overcounts.
To prevent this, we record sstables being compacted in the system keyspace. If we find unfinished
compactions, we remove the new ones (since those may be incomplete -- under LCS, we may create multiple
sstables from any given ancestor).