[
https://issues.apache.org/jira/browse/CASSANDRA-8414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14274593#comment-14274593
]
Richard Low commented on CASSANDRA-8414:
----------------------------------------
Only minor nit is that the BitSet can be initialized with size rather than
cells.length, but otherwise +1.
> Avoid loops over array backed iterators that call iter.remove()
> ---------------------------------------------------------------
>
> Key: CASSANDRA-8414
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8414
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Richard Low
> Assignee: Jimmy MÃ¥rdell
> Labels: performance
> Fix For: 2.1.3
>
> Attachments: cassandra-2.0-8414-1.txt, cassandra-2.0-8414-2.txt,
> cassandra-2.0-8414-3.txt, cassandra-2.0-8414-4.txt, cassandra-2.0-8414-5.txt,
> cassandra-2.1-8414-5.txt
>
>
> I noticed from sampling that sometimes compaction spends almost all of its
> time in iter.remove() in ColumnFamilyStore.removeDeletedStandard. It turns
> out that the cf object is using ArrayBackedSortedColumns, so deletes are from
> an ArrayList. If the majority of your columns are GCable tombstones then this
> is O(n^2). The data structure should be changed or a copy made to avoid this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)