[ https://issues.apache.org/jira/browse/CASSANDRA-14248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17090947#comment-17090947 ]
Jonathan Ellis commented on CASSANDRA-14248: -------------------------------------------- Hi Jordan, It looks to me like SSTableTidier does in fact include SASI components and the only thing stopping it is that SSTableIndex usually deletes them first. I created a patch to remove that redundancy ([https://github.com/jbellis/cassandra/tree/14248)] and now SSTT is doing its job. Am I missing something? > SSTableIndex should not use Ref#globalCount() to determine when to delete > index file > ------------------------------------------------------------------------------------ > > Key: CASSANDRA-14248 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14248 > Project: Cassandra > Issue Type: Bug > Components: Feature/SASI > Reporter: Jordan West > Assignee: Jordan West > Priority: Normal > Fix For: 3.11.x > > > {{SSTableIndex}} instances maintain a {{Ref}} to the underlying > {{SSTableReader}} instance. When determining whether or not to delete the > file after the last {{SSTableIndex}} reference is released, the > implementation uses {{sstableRef.globalCount()}}: > [https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/SSTableIndex.java#L135.] > This is incorrect because {{sstableRef.globalCount()}} returns the number of > references to the specific instance of {{SSTableReader}}. However, in cases > like index summary redistribution, there can be more than one instance of > {{SSTableReader}}. Further, since the reader is shared across multiple > indexes, not all indexes see the count go to 0. This can lead to cases where > the {{SSTableIndex}} file is incorrectly deleted or not deleted when it > should be. > > A more correct implementation would be to either: > * Tie into the existing {{SSTableTidier}}. SASI indexes already are SSTable > components but are not cleaned up by the {{SSTableTidier}} because they are > not found with the currently cleanup implementation > * Revamp {{SSTableIndex}} reference counting to use {{Ref}} and implement a > new tidier. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org