[
https://issues.apache.org/jira/browse/CASSANDRA-9486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14564833#comment-14564833
]
Benedict commented on CASSANDRA-9486:
-------------------------------------
If you have only RTs, or a run of nothing but RTs you'll have a problem, sure.
However more pressing is that during repair we never call {{indexBuilder.add}}
with the atoms, only with RTs. At least, AFAICT. We only call
{{indexBuilder.buildForCompaction}} inside of {{LCR.write()}}; in
{{LCR.update(MessageDigest)}} we ultimately call {{getReduced()}} directly,
which only invokes {{indexBuilder.add}} with RTs.
> LazilyCompactedRow accumulates all expired RangeTombstones
> ----------------------------------------------------------
>
> Key: CASSANDRA-9486
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9486
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Benedict
> Assignee: Marcus Eriksson
> Fix For: 3.x, 2.1.x, 2.0.x, 2.2.x, 1.2.x
>
> Attachments: 0001-9486.patch
>
>
> LazilyCompactedRow initializes a ColumnIndex.Builder to use its
> RangeTombstone.Tracker, but it only calls update() with a RT argument, never
> an atom. The Tracker only ever _adds_ if it receives a RT, never removes. So
> all the RT ever seen for the partition (that have expired) remain in memory
> until the compaction completes. To make matters worse, this then forces a
> linear scan of all of these RT for each live cell we add, so this extra load
> hangs around for a long time, and compactions stall.
> This issue is biting one of our users badly (at least, it seems likely to be
> this issue), and there may be others. This user is not even making use of RT
> extensively themselves, only collections (presumably with a complete
> overwrite of the contents of the collection, resulting in a RT being
> generated).
> Probably the best solution is to make the RT addition itself remove any
> already present that are no longer helpful.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)