[ https://issues.apache.org/jira/browse/CASSANDRA-3716?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13190957#comment-13190957 ]
Sylvain Lebresne commented on CASSANDRA-3716: --------------------------------------------- bq. Any ideas on reducing that danger? Not much, no. Some of the iMFD calls are actually on IColumnContainer, for which it's not dependent on timing. But it's a minority of calls, so renaming those instances wouldn't help much (and since SuperColumn is both a IColumn and IColumnContainer, we'd have to duplicate the method, which wouldn't be a win for code clarity imo). But in fact I'm not convince iMFD is really much of an issue. Since we have expiring columns, there is nothing wrong with the fact that iMFD is dependent on time, and in fact this is perfectly ok for most of the code. The real fragility is the two-pass compaction that pretty much expect that the world is frozen between the two passes, which is very fragile. I want to give a serious look to CASSANDRA-2319 in a hopefully not too distant future. That would allow getting rid of the two passes, so may be the right way to get rid of this fragility. It couldn't hurt however to add some comments on Column/IColumn to remind that iMFD does depend on time for expiring columns. > Clean up isMarkedForDelete / getLocalDeletionTime > ------------------------------------------------- > > Key: CASSANDRA-3716 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3716 > Project: Cassandra > Issue Type: Improvement > Components: Core > Reporter: Jonathan Ellis > Assignee: Sylvain Lebresne > Labels: compaction > Fix For: 1.1 > > Attachments: 3716.patch > > > As explained in CASSANDRA-3579, isMarkedForDelete() depends on the current > system clock so it can change during a two-pass compaction. Suggested fix is > to replace iMFD + gLDT with a getExpirationTime method, so comparison with > the compaction's gcBefore will remain constant. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira