Jakub Janecek created CASSANDRA-10740:
-----------------------------------------
Summary: Incorrect condition causes cleanup of SSTables which
might not need it
Key: CASSANDRA-10740
URL: https://issues.apache.org/jira/browse/CASSANDRA-10740
Project: Cassandra
Issue Type: Bug
Reporter: Jakub Janecek
We needed to perform cleanup of SSTables in our production cluster but found
out that it would take several months. Together with my colleague [~JiriHorky]
we have pinpointed the issue to method CompactionManager.needsCleanup which
incorrectly marks almost all SSTables as the ones needing the cleanup even
though that might not be true. I am attaching a patch which should be
applicable from version 2.x forward (this is the version we would need it in).
To explain the problem, the last condition in the cycle that checks whether the
next key in the SSTable after the current checked range is NOT contained in the
next range falsely marks SSTable as necessary to have cleanup even though it
might be contained in some other range. The correct condition (which is actully
described in the comment) is to check whether the next key in the SSTable after
the current range is less than or equal to the "left" key of the next range
(assuming that the left key is exclusive which is described in another comment
of the same method).
Is our patch and reasoning correct?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)